Embedded ARM上的堆分析 我在Flash的MX51板上开发了GUI重C++应用程序。strong>我想执行堆分析。
不幸的是,我发现的所有堆分析工具要么过于侵入性,要么表面上无法在ARM上工作。我尝试过的特定工具:Embedded ARM上的堆分析 我在Flash的MX51板上开发了GUI重C++应用程序。strong>我想执行堆分析。,embedded,profiling,arm,heap-memory,Embedded,Profiling,Arm,Heap Memory,不幸的是,我发现的所有堆分析工具要么过于侵入性,要么表面上无法在ARM上工作。我尝试过的特定工具: :在我的平台上无法运行,因为平台的CPU很弱。Massif引入的80%CPU时间开销在我的应用程序中造成了一系列无法弥补的问题 (以前的Google性能工具)tcmalloc:这个基于库的非侵入性libc malloc()替换的所有功能都可以在我的目标上工作,除了heap profiler。换言之,线程缓存分配器工作,而探查器不工作。我将在下面向好奇的人解释探查器的故障模式 是否有人建议在AR
- :在我的平台上无法运行,因为平台的CPU很弱。Massif引入的80%CPU时间开销在我的应用程序中造成了一系列无法弥补的问题李>
- (以前的Google性能工具)tcmalloc:这个基于库的非侵入性
替换的所有功能都可以在我的目标上工作,除了heap profiler。换言之,线程缓存分配器工作,而探查器不工作。我将在下面向好奇的人解释探查器的故障模式李>libc malloc()
是否有人建议在ARM平台上执行一套用于执行C++堆分析的替换工具?理想的输出最终将是一个定向分配图,类似于gperftools的tcmalloc输出。资源利用率低是必须的-我的平台资源高度受限
gperftools的tcmalloc的故障模式说明: 我只为那些好奇的人提供这些信息;我不期望得到答复。我在下面看到了类似于gperftools的问题#407,除了在ARM上,而不是在x86上。 具体地说,我总是收到消息“Hooked allocator frame not found,returning empty trace”。我花了一些时间调试这个问题,当动态链接tcmalloc库时,我的应用程序和动态库之间的边界上的帧指针为空-堆栈无法在“上面”遍历对动态库的调用 GPERF工具问题#407:
stackoverflow用户在ARM上看到类似问题:堆。有很多方法可以做到这一点,但我只见过3种主要类型的嵌入式土地:
以上信息适用于所有平台,无论是ARM还是其他平台,尽管我的大部分经验都是关于低级别ARM的,所以以上信息是针对您的平台进行战斗测试的。希望这有帮助 哇,所以512MB是“高度资源受限的”…呼应了我对GBA/DS编程的想法:)