This shows you the differences between two versions of the page.
— |
blog:pushbx:2025:0717_lzexe_data_compression_format [2025-07-17 14:21:16 +0200 Jul Thu] (current) ecm created |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== LZEXE data compression format ====== | ||
+ | |||
+ | Yesterday [[https:// | ||
+ | |||
+ | The compression is done by [[https:// | ||
+ | |||
+ | ===== The depacker ===== | ||
+ | |||
+ | The depacker worked immediately on the first attempt. There is [[https:// | ||
+ | |||
+ | I implemented the depacker based on [[https:// | ||
+ | |||
+ | |||
+ | ===== The benchmark ===== | ||
+ | |||
+ | Despite the additional checks, the LZEXEDAT depacker is still reasonably fast. The following is a comparison of almost all inicomp methods on compressing the current lCDebugX as a triple-mode executable. The test was done on our amd64 Debian server, without KVM. | ||
+ | |||
+ | Scriptlet used to run the build, compression, | ||
+ | |||
+ | lDebug revision: [[https:// | ||
+ | |||
+ | The results: | ||
+ | |||
+ | < | ||
+ | real 490.89 | ||
+ | user 484.39 | ||
+ | sys 5.73 | ||
+ | ldebug/ | ||
+ | 98816 bytes ( 68.19%), method | ||
+ | 102400 bytes ( 70.67%), method | ||
+ | 104448 bytes ( 72.08%), method | ||
+ | 105984 bytes ( 73.14%), method | ||
+ | 113664 bytes ( 78.44%), method | ||
+ | 114176 bytes ( 78.79%), method | ||
+ | 117248 bytes ( 80.91%), method | ||
+ | 117760 bytes ( 81.27%), method | ||
+ | 121344 bytes ( 83.74%), method | ||
+ | 121856 bytes ( 84.09%), method | ||
+ | 122368 bytes ( 84.45%), method | ||
+ | 131072 bytes ( 90.45%), method | ||
+ | 140800 bytes ( 97.17%), method | ||
+ | 144896 bytes (100.00%), method | ||
+ | ldebug/ | ||
+ | 1.17s for 128 runs ( 9ms / run), method | ||
+ | 4.65s for 128 runs ( 36ms / run), method | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | 132.34s for 128 runs ( 1033ms / run), method | ||
+ | ldebug/ | ||
+ | 1456 inibzp | ||
+ | 1488 inizero | ||
+ | 1504 inimv | ||
+ | 1552 inilzexe | ||
+ | 1648 inihs | ||
+ | 1744 iniapl | ||
+ | 1840 iniexo | ||
+ | 1840 inilzsa2 | ||
+ | 1936 inilz4 | ||
+ | 1952 inisz | ||
+ | 2032 iniblz | ||
+ | 2592 inilzo | ||
+ | 3424 inilz | ||
+ | ldebug/ | ||
+ | |||
+ | The current LZEXEDAT has a smaller depacker than LZSA2, is almost as fast, and compresses about 5% worse. In comparison to heatshrink, its depacker is smaller, much faster, and it compresses about 5% smaller. | ||
+ | |||
+ | Perhaps we may use LZEXEDAT for compressing the debugger' | ||
+ | |||
+ | {{tag> | ||
+ | |||
+ | |||
+ | ~~DISCUSSION~~ | ||