德尔福EXE压缩机?

Jam*_*amo 5 compression delphi exe

有一次,我有一个很好的小压缩实用程序,将我的Delphi编译的EXE打破到较小的下载大小,但现在我找不到它.有什么建议?

此外,使用这些实用程序有什么缺点吗?(我主要使用它们来缩短农村/拨号用户的下载时间).


相关问题:使用UPX压缩Windows可执行文件有什么缺点吗?

lke*_*ler 13

几年前,我考虑压缩我的可执行文件,使下载更小.

我最终做的,以及我推荐给你的是使用像Inno Setup这样的安装程序.它不仅会创建一个可以安装/卸载程序的EXE,而且还会压缩EXE,就像单独的压缩程序单独执行可执行程序一样.

安装程序后,它会被解压缩,因此它似乎永远不会是病毒,也不会增加加载时间.

因此,我可以获得更小的下载大小和同时具有专业外观的安装脚本的好处.

ps Inno Setup是免费的.

  • Inno安装提示+1:它包括deflate,bzip2和7-Zip LZMA文件压缩,因此非常小的安装程序是可能的.如果有类似的文件要压缩它会发光,我有一个安装,其中ZIP包大约比安装程序文件大三分之一(两者都包含相同的文件). (4认同)

cgp*_*cgp 12

建议你不要:

  • EXE压缩器可以使您的应用程序看起来像病毒(自我修改)
  • gzip/zip在压缩时同样有效,不会修改你的应用程序
  • EXE压缩器使您的应用程序的加载时间增加(除非您只是谈论安装程序,这是另一回事

这个看起来很疯狂的网站带来了我在遥远的过去听到的一个论点(今天是否真实,我不确定,现代包装工可能今天有不同的策略)本文引用Win32!:)

http://topic.csdn.net/t/20000408/08/6785.html

现代多任务操作系统(如Windows 95/98和NT)使用所谓的"虚拟内存"系统.程序启动时,所有代码在启动时都不会立即加载到内存中,就像DOS程序一样.相反,只有部分正在执行的代码存储在内存中.例如,假设您的程序在其菜单上有一个打印选项,并在其后面有处理打印的代码.只有在用户首次选择打印功能后,才会将此代码加载到内存中.如果在代码加载到内存后,打印功能暂时不会使用,系统将"丢弃"代码,释放它占用的内存,如果另一个应用程序迫切需要内存.这是称为"分页"的过程的一部分,对程序完全透明.

在Win32下分页的另一种方式是节省内存,它会导致程序(或DLL)的多个实例为代码共享相同的内存.换句话说,在正常情况下,在启动程序的100个实例和启动一个实例之间为代码分配的物理内存量没有实际差异.

如果所有Win32程序都像DOS程序一样,将所有内容加载到内存中并将其保留在那里直到程序终止并且也不在多个实例之间共享任何内存,您可以想象物理内存在数量有限的系统上运行的速度有多快,从而导致磁盘交换开始.

然而,这正是当前Win32 EXE压缩器对EXE/DLL的影响!它们完全违背操作系统的分页系统,将所有代码解压缩到内存中并保持在那里直到终止.并且因为代码不是以EXE文件中的"原始"格式存储(即以与存储在内存中相同的方式),操作系统无法在多个实例之间共享代码.

  • 另见:http://jrsoftware.org/striprlc.php#execomp (2认同)
  • 一位同事在使用和不使用UPX时进行了一些基准测试.UPX最终成为网络股票的赢家和本地驱动器的损失.当然我不能引用你的实际数字(我不记得它们,它们将特定于我们的代码),所以随意忽略我:). (2认同)