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~~ | ||