Xref: utzoo comp.unix.xenix:3718 comp.sources.d:2843 Path: utzoo!utgpu!attcan!uunet!munnari!otc!metro!ipso!stcns3!stca77!peter From: peter@stca77.stc.oz (Peter Jeremy) Newsgroups: comp.unix.xenix,comp.sources.d Subject: Compress wars Summary: better than twice as fast. Smaller decompress memory Keywords: compress xenix 80286 Message-ID: <320@stca77.stc.oz> Date: 20 Oct 88 07:34:08 GMT Reply-To: peter@stca77.stc.oz (Peter Jeremy) Followup-To: peter@stca77.stc.oz Organization: Alcatel-STC, Alexandria, AUSTRALIA Lines: 30 Following extensive examination of the source code for compress version 4, as well as the assembler generated by the XENIX compiler, lots of kludging and some very dirty C, I now have a 16 bit compress with the following enhancements: 1) Reduced memory requirements: The memory image for compress is now 421K, decompress 223K. 2) Reduced run-time It runs approximately _three_times_ as fast as my previous mixed-model version. (A bit better than 3 times for decompression, a bit less for compression). My previous mixed-model compress was about 30% faster than a straight large-model version. These changes were achieved by using runtime memory allocation for the tables and re-writing the table access macros to avoid the use of 32-bit shifts. The code currently runs under Xenix/286 Version 2.2.1 - it should be portable to MS-DOG (although the gains may not be as great because it's not running in protected mode). I can't guarantee the code portability to other *nix/286 operating systems, and since its just a set of kludges to get around the yukky segments, it isn't of interest to anyone not condemned to using 80286's. If anyone is interested, please E-mail me. If I get sufficient interest I will post the patches (relative to something fairly generic). -- Peter Jeremy (VK2PJ) peter@stca77.stc.oz Alcatel-STC Australia ...!munnari!stca77.stc.oz!peter 41 Mandible St peter%stca77.stc.oz@uunet.UU.NET ALEXANDRIA NSW 2015