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,不不包括?这是回归一个缺陷吗?

接受的答案

Lipi Vora
Lipi Vora 2019年5月20日
R2019a开始,cudnn64_ *。dllis not packaged in the CTF by default.
以前的版本,请参阅错误报告:
1评论
Igor Varfolomeev
Igor Varfolomeev 2019年5月23日
谢谢!
我刚才试图与R2019a建立相同的代码更新2 -我可以确认没有” cudnn * “在里面。“exe”是73 mb的大小——比R2017b_update9 cudnn更名为(47.9 mb)。
现在最大的dll内是“卤。dll" (55.4MB) (~18MB if packed to zip). Not sure if it's actually used...

登录置评。

更多的答案(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操纵存档/可执行。
如果编译不经常做,这可能是一个可接受的解决方案。
最好的,
丹尼尔
1评论
丹尼尔
丹尼尔 2020年1月23日
忘了说:可执行建成! mcc从MATLAB命令行,使用Microsoft Visual c++ 2017,以防细节问题。

登录置评。


巴林的
巴林的 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
非常感谢你
2的评论
Igor Varfolomeev
Igor Varfolomeev 2018年11月26日
我已经收到了回复的支持。金宝app他们说,他们知道这个问题(“清洁技术基金规模太大”和“ cudnn64_ *在周大福和MCR”) ,他们正在研究它。
好吧,我希望他们最终会解决这个问题。

登录置评。

类别

找到更多的在MATLAB编译器SDK帮助中心文件交换

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!