问题描述
我有一个使用 CMake 在 Linux、MacOSX 和 Windows/Visual Studio 上构建的 C++ 应用程序。现在,我想用 malloc
透明地替换 tcmalloc
的使用,因为之前在 Linux 中的测试显示 TAT 有高达 15% 的改进。
find_library(gperf_MEM libtcmalloc_minimal PATH "C:\\tmp\\gperf")
add_executable(MY_APP ${MY_APP_SRCS})
target_link_libraries(MY_APP ${gperf_MEM})
(C:\tmp\gperf
是我 PC 中放置 libtcmalloc_minimal.dll
文件和关联的 libtcmalloc_minimal.lib
导入库的路径)。
但是,dumpbin /dependents MY_APP.exe
根本不显示 libtcmalloc_minimal.dll
(因为它确实显示了我的应用程序使用的其他 DLL)。但是,使用相同的 CMakeLists.txt(当然,库搜索路径有明显变化),在 Linux/MacOSX 中,ldd/otool
确实显示了对 libtcmalloc_minimal.so/dylib
所以我的问题是:
为了强制使用 tcmalloc 提供的 malloc 实现而不是标准实现,我在 Windows 中缺少什么?
tcmalloc
documentation 讨论了一些有关直接从 Visual Studio 修改项目文件的内容,但这对我来说并不是真正适用的解决方案(由于 CMake,所有构建过程都在脚本中自动化,我除了调试之外,我什至从未打开过 Visual Studio 界面。
非常感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)