1

我有几个大型代码库可以编译成动态库。我知道其中一些有一些非常昂贵的动态全局动态初始化器。(也就是说,构建起来非常昂贵的类/结构的全局实例。)

我想要一种方法来查看这些动态初始化程序在代码中的内容/位置的列表,以便我可以查看它们是否昂贵并且需要重构。我想避免挖掘大量程序集,因为其中一些库非常大并且可能包含数百个动态初始化程序(其中许多很小且相当便宜,如字符串构造)。

有没有可以帮助我解决这个问题的工具?(我的工具链是 Redhat Linux/gcc/cmake。)

4

1 回答 1

2

如何在 valgrind 的 callgrind 工具下运行代码,该工具将分析其执行情况(我假设当您说昂贵时,您的意思是 CPU,而不是 I/O)。编写一个小测试程序,除了加载您关心的许多事情之外什么都不做,然后分析配置文件(例如,在 callgrind 输出文件上使用图形工具 kcachegrind)。

于 2011-11-13T21:32:45.000 回答