【发布时间】:2011-06-26 22:01:49
【问题描述】:
我的 Dll 大小为 2 MB。现在我有一种情况,我需要添加一个带有 2500 个机箱臂的开关机箱。每个机箱都调用一个函数。因此,通过这个包含 2500 个 case 的 switch case 总共调用了 2500 个不同的函数。 (2MB 的 DLL 中已经存在 2500 个函数的全部代码。包含的额外代码仅是 switch case)。现在我的问题是,Dll 的大小在 Release 版本中增加了 15 MB,导致 DLL 大小变为 17 MB,这根据我的要求是巨大的。请给我一些建议,通过正确处理开关盒,我可以将我的 Dll 大小保持在最低限度.. 任何替代方法..
我正在使用 MSVC 2005,c/c++。我调用了优化来最小化大小(/01)、/ltcg、(/OPT:REF)、(/OPT:ICF)等..所有可能的最佳优化功能。 (不使用预编译头文件)
非常需要您的建议
提前致谢 阿尼尔
【问题讨论】:
-
你这样做是为了什么?你为什么选择这个设计?你想达到什么目的?几乎可以肯定有更好的方法来做任何事情。
-
我认为这几乎就是他寻求帮助的原因......?
-
@JohnB - 这是真的,但他想要的答案会有所不同,具体取决于他最初提出 2500 外壳开关设计的原因。
-
你确定所有的代码都已经在DLL中了吗?链接器可能会因为未使用而将其丢弃。
-
希望代码自动生成...
标签: c++ visual-c++ optimization case switch-statement