- 主题:C++的map慢的令人发指,尤其比C#慢的太多太多
很久很久以前
我见过一个程序,她的运行速度,比其他类似的 慢很多很多 肉眼可见的慢很多很多
后来发现,她把参数搞成 传值了 ,每次调用 copy constructor
C++ 最好只有高高手来用
【 在 foliver 的大作中提到: 】
: 起因是我有一个python运算程序,运算太慢。用C#实现后,效率大幅提升。后来想用c++改写应该更快些, 发现竟然慢很多。不能忍。
: 原因程序需要用到大容量字典。百千万级别。
: 对比了下c#和C++(unorder map):
: ...................
--
FROM 47.144.172.*
std::string_view 是不是所谓的 immutable ?
去年,有位搞科学计算的,告诉我说, C++ 的编译器优化根本靠不住
不过,我不熟悉他的工作环境 只知道他有的时候会接触一些大型的计算机
【 在 z16166 的大作中提到: 】
: 现在std::string_view这种小对象是推荐传值,而不是传引用,便于编译器优化
:
--
FROM 47.144.172.*
啊,照这么说,根本上 还是传引用
谢谢详细的解释!
关于编译器优化靠不住,具体的例子,我不知道
那人搞高能物理之类的 自己说考虑的都是P秒的计算
【 在 z16166 的大作中提到: 】
: std::string_view就两个字段:指针 + 长度,属于小尺寸的对象,传值比传引用、指针更好。
: 它自己不拥有指针指向的内存,只是指向别人的内存。
: 所以该内存的生命周期不能小于std::string_view对象的生命周期。
: ...................
--
FROM 47.144.172.*