简单分析的话,可以找些工具插桩看看各函数的执行情况。
深度分析的话,先排除各类等待,并寻找瓶颈的大致位置,然后深入分析TLB和cache miss的情况。CPU占用上去后再考虑循环展开等编译优化
【 在 Akyrum 的大作中提到: 】
: 自己写的蒙特卡洛仿真程序,用了tbb和mkl,在8c16t的台式机cpu占用率只有35%左右(debug版本能开到95%+)。
: 指定tbb只用单线程,开8个进程同时跑,也是35%左右。
: 我确定代码里没用等待或锁,并且IO都放到了ramdisk里,运算速度上不去的原因会是什么呢?
: ...................
--
FROM 222.68.18.*