erlang新建进程与c++切换线程 谁更耗时间? 做游戏服务器,到底用C++语言,还是erlang好了?

到底谁在执行上更高效?
2025-05-13 21:30:04
推荐回答(4个)
回答1:

如果单纯讲执行效率,没有悬念, 肯定是C/C++。 就语言本身, C/C++是仅次于汇编的程序语言; 就系统角度而言,erlang是建立在C等“底层”语言基础上的,环境越多,效率一定是大折扣的,能做到80%的效率就很不错了。再看操作系统本身,基本都是C(甚至C++都少),就很能说明问题了。而且Erland还要看其具体的实现,有专门论文讲解的,比如一篇叫:wicked cool paper on erlang vs. C++ scaling,得出的结论就是C++绝对比Erland效率高。其实很多人认为反而是haskell的效率高,接近C/C++,在某些时候甚至高于C/C++(我持保留意见)。

当然说到编程的实用性而效果上而言,还是相当见仁见智的,主要是要写好C/C++的多线程,不仅C/C++本身要好,对操作系统的线程机制也要相当熟悉,因此不容易做到好,编写的系统越复杂,越不容易。

回答2:

楼上的瞎掰,百度来的资料就别拿出来糊弄人啦
erlang的进程要比c++的线程轻量的多,数量也多,c++切换线程是操作系统级时间消耗很大,而erlang进程的切换是应用级,而且不用维护上下文,切换效率非常高。
做游戏服务器当然用erlang,本身语言的模型就很符合游戏,使用语言本身的编程模型会事半功倍
如果自己做c++不是不能做会很麻烦,而且erlang很简单。

回答3:

切换线程,肯定是C++慢 ;
Erlang只有进程的概念,运行在自己的VM中,新开一个进程的性能开销微乎其微;
Erlang本身作为一门并发语言,作者建议实际应用中多开进程处理事务;

Erlang较C++更适合做game server;
原因在于erlang具有非常稳定的底层框架,进一步,减短开发周期,
另外erlang的原生并发支持也适合做server;

回答4:

如果你手头有成熟的程序员和代码基础 用c
如果没有 erlang的上手快 更容易写出高性能的服务端
可以这么说 写到同样性能的东西 erlang的学习成本比cpp低很多
erlang的进程概念不是操作系统的进程 是虚拟机的进程 更类似于纤程的概念
深圳广州那边的公司用的很多了,如果你有兴趣 我这里有些现成的东西 可以进一步交流qq15594388 写明erlang探讨