当前位置: 代码迷 >> QT开发 >> qt生成的.exe文件与所需的dll文件封装后,运行内存变得很大
  详细解决方案

qt生成的.exe文件与所需的dll文件封装后,运行内存变得很大

热度:121   发布时间:2016-04-25 03:11:26.0
qt生成的.exe文件与所需的dll文件打包后,运行内存变得很大?
使用qt 5.3 release生成的 *.exe文件与所需的dll文件使用Enigma Virtual Box_7.10工具打包后,运行内存(RAM)变得的很大了,在没有打包之前,把所需要的dll文件及目录与 .exe放在一起,更改了qt安装目录,执行.exe时,运行占内存只有7M左右,使用Process Explorer查看让所需qt dll,其路径都是与.exe相同,使用Enigma Virtual Box_7.10工具打包后,运行占的内存变为50M,查看 qt dll 其路径都是与.exe相同,也就是打包的dll。求解!为什么同一个.exe,同样的dll,打包前后,运行内存相关这么大?
------解决思路----------------------
内存占用是一样的吧,不同之处是可能你未打包时那些DLL已经被别的应用,比如Qt Creator加载到内存了, 你的应用使用时只是共享而已。
------解决思路----------------------
Enigma 虚拟文件打包系统适用于各类文件,让您的程序附件文件无需释放到磁盘而可以直接调用。使用虚拟文件打包系统,您可以加入任何类型的文件,如动态库 (*.dll)、ActiveX/COM对象(*.dll , *.ocx),视频和音频文件(*.avi,*.mp3 ),文本文件(*.txt, *.doc )等, Enigma虚拟文件打包系统不会将打包的文件释放到硬盘,所有进程均在内存里执行。

------------------------------------------------------------------------------------------------------------------------------------------------------
这个工具的使用说明里就有,所有资源不释放,均加载在内存里,意思就是会把你整个程序包里面的所有东西都加载在内存里面,而不管你有没有使用。所有我估计你打包后的程序大概也就在50M左右,实际使用内存略大于你的程序包大小。
  相关解决方案