使用运行时包构建时,如何使程序使用更少的内存?

Vib*_*nRC 2 delphi packages bpl

我总是编译我的delphi应用程序而没有"使用运行时包构建",但对于我最新的Project我必须使用它(因为它开始逐日膨胀).我使用了一些第三方VCL(带源代码的TMS组件包,源代码目录也在搜索路径中),

当我使用运行时包编译时,整个bpl包在运行时由app使用(否则它只包含应用程序内包中所需的vcl)所以我认为它消耗了很多ram内存(通常我的应用程序使用38 Mb ram但现在根据Windows任务管理器,62 Mb(不仅是我已经使用了许多其他vcl).

有没有办法让我的应用程序消耗低内存,就像它被编译为单个exe.

(我知道只需要vcl重新编译VCL包(我有源代码)但是挖掘源并找出所需的vcl和子程序太难了)

Rob*_*edy 8

我认为你在测量错误的东西.虽然包文件更大,但这并不一定意味着您的程序在RAM中占用更多空间.编译器必须包含包中所有函数和单元的代码,无论给定程序使用哪个部分,但这并不意味着所有代码都被加载到内存中.操作系统将加载所需的页面 ; 其余的将继续驻留在磁盘上,来自它的BPL文件.整个BPL文件将占用地址空间,但它不会被加载到物理RAM中,所以除了你真的有使用操作系统授予你的进程的整个2 GB地址空间的危险之外,没什么可担心的.