水木社区手机版
首页
|版面-C++程序设计语言(CPlusPlus)|
新版wap站已上线
返回
1/1
|
转到
主题:C++的map慢的令人发指,尤其比C#慢的太多太多
楼主
|
foliver
|
2022-06-18 00:10:55
|
展开
起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
原因程序需要用到大容量字典。百千万级别。
对比了下c#和C++(unorder map):
创建3千万条记录。int,int型
我的笔记本的结果。都实现预保留了容量
C#,用0.55秒。
C++,用了6.65秒。
查询全表
C#用了0.57s
c++用了1.56秒
按理说,都还是微软家的,map实现算法应该一样。
后来用clang编译结果一样。
--来自微微水木3.5.12
--
FROM 223.104.5.*
14楼
|
foliver
|
2022-06-18 12:52:06
|
展开
看你大家都很信任c++的库。实际上,我看了下爆栈,c++的map慢是共识,网上有很多比标准库效率高好几倍的实现。
我这个运算程序,除了map外,在处理wchar类型字符串,比如中文,c++也比C#慢非常非常多。因为程序中map的主键是wstring,所以c++那性能就更加不能看了。
总之,除非程序是单纯密集数值运算,否则c++真没啥性能优势。
我现在对c++的未来更加不看好了。
【 在 fanci 的大作中提到: 】
: 一看就知道是因为你用了Debug Build而不是Release Build
: --
: FROM 183.179.53.*
--来自微微水木3.5.12
--
FROM 140.206.195.*
19楼
|
foliver
|
2022-06-18 13:05:52
|
展开
大家都要测试代码。我贴附件吧。代码里面有关键字。看txt附件,就一个简单的函数。C#和C++都要文件里面
可以在自己机器跑一下。不要迷信C++的标准库性能。
【 在 leving 的大作中提到: 】
: 贴一下测试代码吧。
附件(2KB)
test_dict.txt
--
FROM 140.206.195.*
1/1
|
转到
选择讨论区
首页
|
分区
|
热推
BYR-Team
©
2010.
KBS Dev-Team
©
2011
登录完整版