Matlab编译器生成的”。exe文件大小”和“cudnn64_ * . dll”
4视图(30天)
显示旧的评论
我最近使用Matlab编译器
世纪挑战集团
命令创建一个独立的可执行文件(包括没有MCR安装)。,发现结果”
. exe
“尺寸有点太大——289 MB。我不觉得自己舒服,当我需要这样一个exe传递给我的同事,他可能会说关于Matlab坏事:)。
我知道'
- n
的开关,允许以防止包括not-actually-needed工具箱。它不会帮助。我需要以下的工具箱:并行处理和图像处理。
”。exe”文件没有之前那么大,所以我决定尝试一些Matlab版本,和打开每个“
. exe
“生成。我立刻注意到文件里面是最大的“
cudnn64_ * . dll
”。
结果
:
释放exe大小cudnn大小cudnn_name
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
R2018b289 MB324 MB“cudnn64_7.dll”
R2017b_Update9230 MB284 MB“cudnn64_7.dll”
R2017b_noUpdates81 MB75 MB“cudnn64_5.dll”
R2016b32.2 mb0 MB* *没有这样的文件
所以,“
cudnn * . dll
”在这里浪费空间中起着重要作用。
我不使用这个”。dll" in this project, actually. I wonder why Matlab thinks I do. So, I've temporarily renamed it to ".dll__", and re-compiled my ".exe". And now the resulting ".exe" got significantly smaller (29MB in R2017b_noUpdates, which looks more-or-less OK). And it still works. Maybe this approach would help someone else.
我的问题是:
- 所以. .任何想法如何进一步改进这个,不用付出太多的努力吗?
- 有一个副本dll在MCR安装本身(相同,byte-to-byte,除了“R2017b_Update9”——只是没有MCR更新目前可用)。为什么把它在这里和那里吗?为什么R2016b“聪明”,这个不必要的dll,不不包括?这是回归一个缺陷吗?
0评论
接受的答案
更多的答案(2)
丹尼尔
2020年1月23日
你好,
我注意到使用R2019a,我可以代替卤。dllwith a 0-byte dummy file in the executable, to reduce file size. I cannot remove it from the archive since MATLAB checks for the presence of the file, but I can replace it with a dummy file of size zero, and the executable still runs.
我用7 - zip操纵存档/可执行。
如果编译不经常做,这可能是一个可接受的解决方案。
最好的,
丹尼尔
巴林的
2018年11月23日
我面临着同样的事情
我认为Mathworks应该认真关注这个大的技术问题。许多程序员当他们达到这一点,他们将迫使re-program代码从头开始使用其他编程语言(比如Python pyqt),以避免我们面对MATLAB大型. exe应用程序
我设计了许多伟大的使用MATLAB gui,但我仍然不能编译他们朋友和社区,因为他们会问我关于这个unncessary文件大小!它是逻辑设计一个简单的GUI(如只显示消息“Hello World”)最终得到一个非常大的文件! !如果我与c++程序相同的代码使用qt和pyqt Python,它将只是费kb的文件大小,自动没有深入与mcc - xx神秘代码;我正确吗?
这是一个巨大的边界和障碍,应该作为最高优先级解决问题需要马上解决
我希望我的担忧达到Mathworks让我们受益于一个伟大的和智能语言MATLAB
非常感谢你