- 主题:C++的map慢的令人发指,尤其比C#慢的太多太多
支持
【 在 fanci 的大作中提到: 】
: 因为这么基本的一个C++库不可能慢一个数量级。
: 所以不是楼主程序的问题就是编译参数的问题。
: 从楼主的提问方式来看,很少用C++。那MSVC新手最常见掉进的性能坑就是用了Debug Build。
: ...................
--
FROM 101.88.154.*
+1
【 在 fanci 的大作中提到: 】
: 一看就知道是因为你用了Debug Build而不是Release Build
--
FROM 1.90.99.*
必然扯淡的,不可能要5,6秒。贴代码
【 在 foliver 的大作中提到: 】
: 起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
: 原因程序需要用到大容量字典。百千万级别。
: 对比了下c#和C++(unorder map):
: ...................
--
FROM 120.244.162.*
贴代码吧
【 在 foliver 的大作中提到: 】
: 起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
: 原因程序需要用到大容量字典。百千万级别。
: 对比了下c#和C++(unorder map):
: ...................
--
FROM 117.136.63.*
看你大家都很信任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.*
上最小代码
【 在 foliver 的大作中提到: 】
: 起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
: 原因程序需要用到大容量字典。百千万级别。
: 对比了下c#和C++(unorder map):
: ...................
--
FROM 171.104.255.*
贴一下测试代码吧。
【 在 foliver (Oliver) 的大作中提到: 】
: 看你大家都很信任c++的库。实际上,我看了下爆栈,c++的map慢是共识,网上有很多比标准库效率高好几倍的实现。
:
: 我这个运算程序,除了map外,在处理wchar类型字符串,比如中文,c++也比C#慢非常非常多。因为程序中map的主键是wstring,所以c++那性能就更加不能看了。
:
--
FROM 183.192.21.*
有狂打log吗,log是很耗时的。
【 在 foliver (Oliver) 的大作中提到: 】
: 看你大家都很信任c++的库。实际上,我看了下爆栈,c++的map慢是共识,网上有很多比标准库效率高好几倍的实现。
:
: 我这个运算程序,除了map外,在处理wchar类型字符串,比如中文,c++也比C#慢非常非常多。因为程序中map的主键是wstring,所以c++那性能就更加不能看了。
:
--
FROM 183.192.21.*
stl的map是每个节点都是堆上的小对象,内存连续性不好,性能不佳。
【 在 foliver 的大作中提到: 】
: 起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
:
: 原因程序需要用到大容量字典。百千万级别。
: ...................
--来自微微水木3.5.12
--
FROM 111.197.84.*
大家都要测试代码。我贴附件吧。代码里面有关键字。看txt附件,就一个简单的函数。C#和C++都要文件里面
可以在自己机器跑一下。不要迷信C++的标准库性能。
【 在 leving 的大作中提到: 】
: 贴一下测试代码吧。
附件(2KB) test_dict.txt--
FROM 140.206.195.*