我在使用C ++ / VistualStudio / WindowsXP编写的软件的多核(8+)架构上面临性能问题。
突然间,我意识到我不知道我的L1和L2缓存以及CPU-> to->内存带宽的性能。
我已经测试了几种工具(包括VTune,Glowcode等等)但是在多核架构中加载测试时所有这些工具都失败了(这就是我需要它们的原因!)。
你能否建议任何其他工具在制作图表时不那么花哨但能给我至少很少的缓存/内存性能指示,或者可以建议手动检测我的应用程序的代码片段?
谢谢!
答案 0 :(得分:1)
您是否确定这是性能问题的根源?如果没有,最好先看看其他事情。
有一篇关于多线程编程的好文章,以及它的各种隐藏问题,here。也许这会有所帮助吗?
答案 1 :(得分:0)
也许Memtest86+正是您所寻找的。 p>
答案 2 :(得分:0)
我相信EVEREST测试套件会检查你的内存/ CPU /缓存性能。您可能想要查看此站点。 Lavalys' Everest Page
答案 3 :(得分:0)
您可以使用硬件计数器来测量L1和L2未命中率;但是,我不太确定哪个库包用于Windows平台。
答案 4 :(得分:0)
你试过cachegrind吗?当然,它是一个模拟器,但它仍然可以让你捕捉到大多数真正的问题。