cpu密集的程序性能上,高级语言没有能比得上c/cpp/rust的,都会比他们多几条指令,多几纳秒。
定量5kw内求素数,上面也早就给了数据了,cpp确实快一些,但快的这一些,拉一下滚动条都能抵消,99.9%使用场景下没有值得考虑的价值
cpu simd,gpu,fpga都是硬件优化范畴,本身使用的都是另外的接口,和语言本身无关,哪个语言也都能用
io密集型程序,理论上也都比不上c/cpp,没有rust是因为有些io的内存模式有限制,比如Windows registered io。
但这仅仅是理论上,现实中不可能每次io都使用效率最高的异步接口,线程io模型的考虑是需要心智负担的。
每次文件读写,数据库读写,网络读写等都来一个异步回调,会整死程序员的。
现在心智负担最小的是async/await。单个语言的全体框架对async/await的支持的完成度,决定了这个语言的io密集型程序快慢。
而async/await框架完成度最高的是c#,所以c#在开发io密集型程序最有优势。
现实测试也支持这个结论
https://www.techempower.com/benchmarks/#section=data-r19&hw=ph&test=plaintext这个可是Linux上的性能测试。
所以快慢这个事情,看聚焦哪个部分,有不同的结论
【 在 finlab 的大作中提到: 】
: 筛法求素数当然快很多,但这里不是讨论这个。
: 我不是要研究算法或优化技巧。
: 只是想对正常情况下,C#和C++的性能差异有一个大致概念。
: ...................
--
FROM 123.116.198.*