erlang 程序设计 习题:环形基准测试
2014-04-17 12:58
162 查看
编写一个环形基准测试。在一个环中创建N个进程。然后沿着环发送一条消息M次,最后总共发送N*M条消息,在N和M的不同取值下测试整个过程会消耗多长时间。
不知道我对这个题目的理解是否是正确的,创建一个进程,然后再这个进程中再创建一个,总共创建N个,形成一个环,只需要向Head进程发送一条消息,消息就可以沿着进程环传递直到最后一个进程。
下面是代码:
lib_misc中for循环的代码:
仅供参考,希望能看到更好的答案。
不知道我对这个题目的理解是否是正确的,创建一个进程,然后再这个进程中再创建一个,总共创建N个,形成一个环,只需要向Head进程发送一条消息,消息就可以沿着进程环传递直到最后一个进程。
下面是代码:
-module(circle_process). -import(lib_misc,[for/3]). -compile(export_all). start(Num) -> register(circle_head, spawn(fun() -> create(Num)end)). send_message(M, N) -> lib_misc:for(0, N, fun(I) -> circle_head ! M end). create(0) -> self(); create(Num) -> Pid = spawn(fun() -> create(Num - 1) end), io:format("self Pid:~p create process:~p~n", [self(), Pid]), loop(Pid). loop(Pid) -> receive cancel -> Pid ! cancel, cancel; Any -> Pid ! Any, io:format("Pid:~p receive:~p~n", [self(), Any]), loop(Pid) end.
lib_misc中for循环的代码:
for(Max, Max, F) -> [F(Max)]; for(I, Max, F) -> [F(I)|for(I+1, Max, F)].
仅供参考,希望能看到更好的答案。
相关文章推荐
- Erlang信息传递环形基准测试
- Erlang 环形基准测试
- c程序设计语言_习题1-11_学习单元测试,自己生成测试输入文件
- erlang程序设计8.11的习题
- 大数据测试学习笔记之基准测试HiBench
- 跨平台开源项目Ngui【基准性能测试报告】
- 学习笔记:MySQL基准测试之sysbench
- C程序设计语言(第二版)习题:第二章
- windows程序设计,第七章鼠标,用子窗口做击中测试,模拟键盘
- 程序设计的理念是从写测试程序开始,然后编写可以通过测试的程序
- Sysbench硬件基准测试
- 谭浩强 c++程序设计第一章课后习题 第10题
- 基于DM6467的OV5642视频采集编码程序设计(2)——Encode Demo测试
- erlang 200w进程测试
- PHP高级程序设计:模式、框架与测试
- PHP高级程序设计:模式、框架与测试这本书怎么样
- C++程序设计(第三版)谭浩强 一章习题
- mysql 基准测试 sysbench的安装及基本使用方法
- MySQL基准测试--innodb_buffer_pool_instances
- MYSQL性能优化之基准测试