免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123
最近访问板块 发新帖
楼主: 方兆国
打印 上一主题 下一主题

[C++] C/C++多线程怎么单线程还慢 [复制链接]

论坛徽章:
5
狮子座
日期:2013-08-20 10:12:24午马
日期:2013-11-23 18:04:102015年辞旧岁徽章
日期:2015-03-03 16:54:152015亚冠之德黑兰石油
日期:2015-06-29 18:11:1115-16赛季CBA联赛之新疆
日期:2024-02-21 10:00:53
21 [报告]
发表于 2013-07-24 03:12 |只看该作者
你不知道有个函数叫做join么= =

另外,i5 CPU,四核,居然算1000W以内素数数量居然要3~4s………………这……

记得四五年前写的线性筛法求10亿的素数数量也才一秒的样子……

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
22 [报告]
发表于 2013-07-24 23:21 |只看该作者
starwing83 发表于 2013-07-24 03:12
你不知道有个函数叫做join么= =

另外,i5 CPU,四核,居然算1000W以内素数数量居然要3~4s………………这 ...


……我已经很知足了,在CentOS 6.4下,同样的代码用gcc编译不了,只能用g++,而且运行速度和java的运行速度(无论是Linux下的java还是Windows 下的java)差不多

论坛徽章:
0
23 [报告]
发表于 2013-07-25 17:45 |只看该作者
请教一下,那个i呀?
i不都是临时变量吗

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
24 [报告]
发表于 2013-07-25 20:13 |只看该作者
edward_35 发表于 2013-07-25 17:45
请教一下,那个i呀?
i不都是临时变量吗


嗯,所以刚开始出错了,造成了死循环,所以显得C程序比较慢

论坛徽章:
0
25 [报告]
发表于 2013-07-26 11:09 |只看该作者
谢谢你的回答,但是你没明白我问的问题。
i是临时变量,各个线程都不会共享。
即使i被优化了,按道理也不会死循环。
所以我想问,你改的i,是那个函数里的i

论坛徽章:
19
CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-09-18 15:15:15CU大牛徽章
日期:2013-05-20 10:46:44CU大牛徽章
日期:2013-05-20 10:46:38CU大牛徽章
日期:2013-05-20 10:46:31CU大牛徽章
日期:2013-05-20 10:46:25CU大牛徽章
日期:2013-05-20 10:46:18CU大牛徽章
日期:2013-04-17 11:19:51CU大牛徽章
日期:2013-04-17 11:19:42CU大牛徽章
日期:2013-04-17 11:19:37CU大牛徽章
日期:2013-04-17 11:19:32CU大牛徽章
日期:2013-04-17 11:19:28
26 [报告]
发表于 2013-07-26 18:33 |只看该作者
edward_35 发表于 2013-07-26 11:09
谢谢你的回答,但是你没明白我问的问题。
i是临时变量,各个线程都不会共享。
即使i被优化了,按道理也不 ...


就是说i被优化以后,循环结构访问的时候访问的时cache中的i,然而我的修改条件的实现发生在内存中,两个i已经不是一个值了,而数据并没有从内存刷新到cache 中

我是这么理解的,也不知道对不对
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP