如何调试分析多线程效果? 我的机子是4core的,用多线程分词之后,统计含某个词语的语句。我有一个主线程分配任务,又启动了4个线程分词。通过输出调试信息,4个线程确实都执行了分词任务。但运行时发现速度不快。通过任务管理器观察,cpu仅使用了25%。我想cpu使用率如果达到70-90%才比较正常。是否需要增加线程数到10?由于缺乏经验,不知道问题出在哪里。请朋友们指点。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也遇到类似的问题,我的机器是4 core的,一个IHO S57海图后台选图程序(就是把图文件从硬盘读入内存,读入的过程相对复杂,除IO外,CPU的运算量相对较大,有非常复杂的解密过程)。线程池共20个,真正同时起的,也不超过20个。一次同时起的时候,会自动根据操作起线程。多的时候,也就16个,至今没有超过16个。CPU最高也就50%,而且就是那么一瞬间。我所想到的解释,就是CPU的运算速度远超过其它的访问速度。 是不是可以通过设置线程的亲缘性,让指定的CPU去执行相应的线程 多核要用OpenMP#pragma omp parallel shared OpenMP相关的网页:http://www.cnblogs.com/P_awl/archive/2009/12/26/1632894.htmlhttp://blog.csdn.net/drzhouweiming/article/details/1131537 动态设置并行循环的线程数量http://www.diybl.com/course/3_program/c++/cppsl/200864/121425.html 原来还有并行语法,哈 我双核机器上,跑一个死循环只占50%cpu,这下我可以把100%都占了。 高精度计时http://www.docin.com/p-52893127.html #pragma omp for schedule(dynamic, 500)这个指令很重要。500*sizeof()<1级cache,就可以有很好的效果。设置线程的亲缘性也很重要。我的cpu是Q8200,1级cache为64k,设置4个线程,相应绑定4个core,一次schedule500-1000个语句,效果非常好。12分钟处理600万个语句。否则要100分钟。贴在这里给朋友们参考。 Intel有个分析器,VS2010也有个性能分析器。多线程并不意味着高CPU利用率,礼貌释放CPU时间片可能不会造成高CPU利用率的。 一个让我不解的C++问题? 关于异常提示窗体,错误窗口 一个关于当鼠标经过static控件时,鼠标样式变成小手的问题 如何判断某个字符串是否是word中的书签? 在类A的成员函数functionsA函数里调用类B的成员函数functionsB执行一些操作,采用什么方法较为合适? 关于ghost,有兴趣来看看 像qq一样变换图标 还是那个全局数据库连接的问题 请问,有没有搞CAD二次开发的兄弟! 在DB2(V5.0)中用标准SQL查询未果,WHY? 请教关于writeprocessmemory返回值为0的问题 vc怎么得到工具栏文本框的值。
#pragma omp parallel shared
http://www.cnblogs.com/P_awl/archive/2009/12/26/1632894.html
http://blog.csdn.net/drzhouweiming/article/details/1131537
http://www.diybl.com/course/3_program/c++/cppsl/200864/121425.html
http://www.docin.com/p-52893127.html