c++写后端程序响应速度强无敌

2019-08-22 18:28:50 +08:00
 mq4079

这两天用 c++重写了一段用 node 写的后端程序,相同的业务逻辑,mongodb 的 CURD 操作之类的,没用奇巧淫记没有任何优化,编译出来的程序响应速度实测比 node 快 10 倍左右,虽然 c++写起来麻烦一点点但为了性能还是 ok 的,v 友门公司用 c++写后端的多吗?

20344 次点击
所在节点    C++
117 条回复
augustheart
2019-08-23 16:56:33 +08:00
@b00tyhunt3r 关于 ocaml 比 c 快的说法我倒是看到过。不过不是他这个说法,是说有比 c 更快的传说。
但也就像我说的那样,就算 python 都有比 c 快的个例,这种没有参考价值。而且,我看到更多的评测结果都是 c 比 ocaml 快,最多也是不相上下( g++ vs ocaml)。如果差几倍,还是“多次优化”,基本可以断定是用调试版跑出来的结果。
CantSee
2019-08-23 16:59:29 +08:00
毕竟没有虚拟化平台
jy04149886
2019-08-23 17:16:10 +08:00
上代码吧,学习一下
no1xsyzy
2019-08-23 18:25:03 +08:00
@b00tyhunt3r 原文已删的话谷歌也没用吧……
而且我说了中文使用者,全英文关键词 google 会傻的只找全英文的
而且中文博客+cornell 你差不多就该知道是谁的文章了
secondwtq
2019-08-23 19:57:44 +08:00
我只记得这个 http://www.ffconsultancy.com/languages/ray_tracer/comparison.html
然而这个在 HN 上被喷成狗了

C/C++ 的独特优势是性能**上限**高,意思是假定使用的是未经定制的编译器,同时假定有一个水平无限高的程序员(或者有无限多只猴子在”写”同一个程序),用 C/C++ (以及其常见扩展)写的程序的运行时性能的最大值是其他语言比不上的

这个条件很值得玩味

当然汇编是个例外,不过这里即使排除汇编,以及 C/C++ 的內联汇编扩展,C/C++ (以及其常见扩展)对硬件和内存的精确控制还是可以使其在运行时性能上限这一方面把其他语言轰成渣
secondwtq
2019-08-23 20:05:05 +08:00
OCaml 的编译器实现确实很高效,不过这个“高效”更适合用来指代该编译器本身,而不是编译器生成的代码。这么说把,OCaml 的编译器的**编译速度**,和 C++/Haskell 的编译器相比是两个极端

不过鉴于 OCaml 的编译器是 OCaml 写的,所以你说 OCaml 运行时性能高效,也还凑合,不过和 C/C++ 比性能上限还是算了吧

个人见解,OCaml 编译器本身能做的如此高效,一个重要原因是坚持了四项,啊不四字基本原则,即 KISS。另外 OCaml 编译器对所生成代码进行的优化,相比于各大 C/C++ 编译器来说是很少的,flambda 什么的也是最近才开始搞(效果貌似也没好到哪去)。对于 C/C++ 编译器来说,如果你把优化开满,编译是很耗时的

某中文博主的文章里面应该也有一部分这个意思,但是他吹过头了
b00tyhunt3r
2019-08-23 20:58:10 +08:00
@no1xsyzy 比 c 快 50 倍这个听着太魔幻了。。。汇编能做到吗
怕不是特殊硬件条件下的极端特例
某中文博主不是一直是函数式的 fanboy 吗,只是想确认下中文是不是断章取义了
luozic
2019-08-23 21:07:26 +08:00
比 c 实现某功能快 50 倍?是运行快,还是写代码花的时间? ada 编译器 /fortran 编译结果倒是在很多时候比 C 快,但是现在没多少人愿意用了,ocaml 比 c 快,怕不是在通用处理器上吧,
sosilver
2019-08-23 21:28:00 +08:00
@augustheart nightly 不是啥可怕的东西,Libra 都在用 nightly
hronro
2019-08-23 21:31:40 +08:00
@VDimos #78 Rocket 的性能和 Node.js 差不了多少,就别说了
secondwtq
2019-08-23 21:35:37 +08:00
另外我觉得 OCaml 还是低调一点 ... 一粉顶十黑的客观真理已经在这几楼开始发挥作用了,我可不想哪天 OCaml 变成人人喊打的东西

说起来,我之前用 PHP 重新实现了一个系统,结果发现 PHP 的实现比原来的 C 语言实现快了 50 倍。经过 C 语言的那个小组对算法多次的优化,PHP 的版本还是快好几倍。(转移话题
Cbdy
2019-08-23 21:38:58 +08:00
这种应用瓶颈不是卡在 IO 吗?
cabing
2019-08-23 21:39:24 +08:00
脱离了业务和开发效率说速度都不太实际。
version
2019-08-23 21:40:22 +08:00
只在乎改需求的语言成本,其它多核处理器来处理速度问题,一半简单接口,人员成本比机器高,还抱怨 996
b00tyhunt3r
2019-08-24 03:01:00 +08:00
@secondwtq 哇 图形学大佬?
agagega
2019-08-24 08:57:55 +08:00
@secondwtq
印象里 ocamlc 和 ocamlopt 编译速度差不少啊,你说的怕不是 ocamlc
halk
2019-08-24 10:28:30 +08:00
@mq4079 都放到同样的 OS 环境测试一下,才有说服力

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/594287

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX