最近我正在尝试深入了解并发编程领域。一开始,我认为多核处理器的唯一原因是提高程序性能。但现在我不再确定了...
考虑到大多数语言编写多线程程序都很困难,许多人倾向于推荐专门设计的语言,如Erlang或Clojure作为并发计算的首选语言。当然,Erlang使编写并发程序更容易,但这值得吗?
我查阅了 shootout 上一些 Erlang 程序(是的,我知道微基准测试并不能说明太多...),惊讶地发现许多单核 C 程序甚至比四核 Erlang 程序表现更好。
那么我的问题是,像 Erlang、Clojure 等语言的优势是什么?当 C / Java 的单核程序速度更快时,为什么我要使用这种易于编写多核程序的语言?
(我忘了提及,这些问题只涉及多核机器,分布式计算是另一回事,我可以看出 Erlang 在这里的优势)
考虑到大多数语言编写多线程程序都很困难,许多人倾向于推荐专门设计的语言,如Erlang或Clojure作为并发计算的首选语言。当然,Erlang使编写并发程序更容易,但这值得吗?
我查阅了 shootout 上一些 Erlang 程序(是的,我知道微基准测试并不能说明太多...),惊讶地发现许多单核 C 程序甚至比四核 Erlang 程序表现更好。
那么我的问题是,像 Erlang、Clojure 等语言的优势是什么?当 C / Java 的单核程序速度更快时,为什么我要使用这种易于编写多核程序的语言?
(我忘了提及,这些问题只涉及多核机器,分布式计算是另一回事,我可以看出 Erlang 在这里的优势)