Rust、Erlang 并发数量比较
2021-05-01 00:31
1631 查看
最近在看Rust,于是就心血来潮的把Rust的并发和erlang的拿来做比较,想看看谁支持的数量大。于是就有了下面的小片段,皆因好空虚、好寂寞、好冷。
我的机器配置如下:宏基4738G 笔记本,CPU Inter i3 2.53GHZ ,内存 2G
1)Rust代码如下:
fn main() { let mut i = 0; while i < 1000000 { println(fmt!("The %dth task", i)); do spawn {loop{}}; //这个任务无限循环,不停止 i += 1; } }
初学Rust,可能写的比较蹩脚,别见笑。
2)Erlang代码如下:
-module(spawntest). -export([test/0, loop/1]). loop(N) -> if N /= 0 -> io:format("the ~wth task has spawn~n", ); true-> void end, loop(0). //无限循环,不停止 test()-> [spawn(?MODULE, loop, ) || N <- lists:seq(1,1000000)].
运行结果如下图:
Rust的到9万多进程的时候,就Out of memory了。
erlang到3万多条就超出系统限制了,CMD里 Erl + P 1000000,再运行,老是到1000多个的时候就看不到动静了,也就懒得继续了啊。。。
没有看到erlang传说当中的上百万进程。或者是我的代码写的不好?当然,Rust还是一门在发展当中的语言,我相信它能变得更好。
欢迎各位看官拍砖,欢迎各种喷子。
相关文章推荐
- 解决Play框架启动提示JVM内存分配失败的问题
- 做了一个 62 进制的简单实现
- Windows Server 2008 R2 负载平衡入门篇Apache2.2+Tomcat7.0整合配置详解
- 使用Scala写了个简单的Scheme解释器
- 现在使用控件, 更喜欢继承
- 写了一个字符串的二维表: TSta
- 覆盖、再覆盖
- 记一次失败的Perl + Nginx + FastCGI 配置过程
- 执行 Application.Terminate 后, OnDestroy 中的代码还会执行
- Perl Dancer 学习(一)
- 关于字符串, 之前没这样用过
- 以接口为主导的设计中, 我在使用的框架模式
- 结合领域驱动设计的SOA分布式软件架构
- 获取程序自身大小的函数
- 捕捉 midi 输入消息的基本程序
- Delphi XE2 之 FireMonkey 入门(9) - TBitmap
- C#综合揭秘——细说进程、应用程序域与上下文之间的关系C#综合揭秘——细说多线程(下)”
- WCF揭秘——共享数据契约
- 使用泛型, 写一个为任意类型的动态数组添加元素的方法
- 准备理一下菜单和工具栏相关的组件