请教多线程和容器之间的问题

feanren 2015-10-14 10:25:51
cpu是服务器上24核的。
我开了20个线程读一个list里面的数据,大概有300万行,list里面放的是一个结构体。
不做写的操作,只是读和计算。
但是我看cpu的利用率并不高,只有10%左右。
我又写了个测试的代码,开20个线程,每个线程执行int a 加加的操作。
测试的代码,cpu疯长,达到90%。
我想问一下,线程读内存里的大量数据是不是有瓶颈,类似I/O的瓶颈一样。
如何提高cpu的使用率呢?
...全文
119 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ztenv 版主 2015-10-14
  • 打赏
  • 举报
回复
怀疑是线程的频繁切换导致了cpu使用率极速上升
赵4老师 2015-10-14
  • 打赏
  • 举报
回复
无profiler不要谈效率!!尤其在这个云计算、虚拟机、模拟器、CUDA、多核 、多级cache、指令流水线、多种存储介质、……满天飞的时代!
fefe82 2015-10-14
  • 打赏
  • 举报
回复
开 profiler 看一下吧。

你也需要确认一下你的 list 的实现(或者你的结构体的实现)里是不是有锁。

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧