Erlang程序设计第8章的习题:
start(N,M) ->
statistics(wall_clock),
Pids = for(1,N,fun(_X) -> spawn(fun get_msg/0) end),
for(1,M,fun(X)->send_msg(Pids, "message " ++ integer_to_list(X)) end),
{_,Time} = statistics(wall_clock),
io:format("take ~p seconds~n", [Time/1000]),
send_msg(Pids, stop),
ok.
for(N,N,F) ->
[F(N)];
for(I,N,F) ->
[F(I)|for(I+1,N,F)].
get_msg() ->
receive
stop ->
void;
_Any ->
% io:format("got ~p~n", [_Any]),
get_msg()
end.
send_msg([Pid], Msg) -> Pid!Msg;
send_msg([Pid|Pids], Msg) ->
Pid!Msg,
send_msg(Pids, Msg).
在笔记本上跑start(1000,1000)要0.4秒,而在一台双CPU的服务器上居然要1.3秒。以为是linux上编译erlang时有优化参数没有设好。看README,注意到默认是打开SMP模拟器的,于是试着使用
erl -smp disable
启动erl shell将smp模拟器关掉,结果CPU占用率从170%下降到100%,时间变成了0.3秒,看来模拟器的效率还不够好啊。
分享到:
相关推荐
Joe的那篇erlang论文 Programming Erlang + 源码包 Erlang Programming Concurrent Programming in Erlang efficiecy guide 资源齐全.希望能帮到你.
Erlang学习资料,2本书,不用卖书,电子书足够了
### Erlang学习知识点总结 #### 一、简介 在文档“erlang学习2.pdf”中,作者通过一系列示例和代码介绍了Erlang语言的基本概念及其在网络编程中的应用。本篇将围绕文档中的核心知识点进行深入解读,主要包括:构建...
用于erlang学习资源 一些基本的语言
### Erlang学习知识点 #### 一、Erlang简介与安装 - **Erlang**是一种通用、并发、函数式编程语言,适用于构建高可用性系统。它在电信行业有广泛应用,同时也被用于互联网服务、分布式计算等领域。 - **安装步骤**...
### Erlang学习:支持多个连接的TableServer及进程通信详解 #### 一、引言 在Erlang的学习过程中,理解和掌握如何构建能够处理多个连接的服务器是非常重要的一步。本篇文档将详细介绍如何通过Erlang语言实现一个...
Erlang是一种面向并发的、函数式编程语言,由瑞典电信...总的来说,Erlang的学习涉及函数式编程思想、并发处理、分布式系统设计等多个方面,深入学习并实践这些知识点,将使你具备开发高效、可靠的并发应用程序的能力。
【描述】虽然描述中没有具体的信息,但我们可以假设这是一个博主分享的关于Erlang学习的初步笔记,可能涵盖了基本语法、并发模型以及一些实用工具的使用。 【标签】"源码"和"工具"提示我们,这篇笔记可能包括了...
### Erlang学习笔记:深入解析Erlang编程与系统管理 #### 1. Erlang编程基础与资源 在深入探讨Erlang编程之前,我们首先需要了解一些基础资源和学习资料。Erlang官方网站([www.erlang.org](http://www.erlang.org...
### Erlang分布式调用与TableServer支持详解 #### 前言 Erlang作为一种专为构建高并发、高可用性系统而设计的编程语言,其核心特性之一就是强大的分布式处理能力。本篇文档旨在深入解析Erlang的分布式调用机制及...
资源名称:Erlang语音学习资料汇总资源目录:【】Erlang程序设计【】[ManningPublications]ErlangandOTPinAction【】[NoStarchPress]LearnYouSomeErlangforGreatGood!ABeginner'sGuide【】[O'ReillyMedia]...
Erlang是一种面向并发的、函数式编程语言,由瑞典...这两本书结合阅读,将为初学者提供一个全面的Erlang学习路径,从基础语法到高级并发编程技巧,有助于深入理解Erlang语言及其在构建高并发、分布式系统中的强大能力。
这个文件名可能指向一个包含额外Erlang学习资源的列表,如其他教程、文档、开源项目或社区论坛链接。这些资源可以帮助用户进一步深入学习Erlang语言和相关技术,提升开发技能。 总结来说,Erlang_CNode用户指南是为...
**Erlang编程语言简介** Erlang是一种高级并发编程语言,由...通过《erlang中文基础教程.doc》文档和《更多erlang资料下载.txt》文件,你可以获取更多的Erlang学习资料和实践案例,逐步掌握这一强大而独特的编程语言。
学习Scala,你需要理解其静态类型的特性、模式匹配、 Actors模型以及类型系统,包括高阶函数、特质(traits)和不可变数据结构。 Groovy是另一种基于JVM的动态编程语言,它的语法简洁,易于阅读和编写。Groovy与...
"erlang 中文,chm参考文档"提供了丰富的Erlang学习资源,包括"Erlang手册(5.8.2).chm"和"erlang深度分析.pdf"。这两个文件将帮助你全面理解Erlang的基础语法、并发模型、错误处理机制以及高级特性。 Erlang手册...
### 关于《Pragmatic Programming ...总之,《Pragmatic Programming Erlang 第二版》是一本非常值得推荐的Erlang学习资料,无论你是刚刚接触Erlang的新手还是想要深入了解Erlang的资深开发者,都能从中获益良多。
"更多erlang资料下载.txt"文件可能包含其他Erlang学习资源链接,如官方文档、教程、社区论坛等,对于深入理解和实践Erlang模块级热部署非常有帮助。 总的来说,Erlang的模块级别热部署是其强大之处之一,它允许...
**Erlang文档资料大集合** 是一个综合性的资源包,包含了丰富的Erlang学习资料,旨在帮助初学者和有经验的开发者深入理解和掌握Erlang编程语言。Erlang是一种面向并发、分布式、容错的函数式编程语言,特别适合于...