ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Rust、Erlang 并发数量比较

2021-05-01 07:02:31  阅读:206  来源: 互联网

标签:spawn erlang 如下 并发 Rust Erlang loop


  最近在看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", [N]);
	true-> void
  end,
  loop(0).   //无限循环,不停止
test()->
 [spawn(?MODULE, loop, [N]) || N <- lists:seq(1,1000000)].

运行结果如下图:
 
Rust的到9万多进程的时候,就Out of memory了。 


erlang到3万多条就超出系统限制了,CMD里 Erl + P 1000000,再运行,老是到1000多个的时候就看不到动静了,也就懒得继续了啊。。。

没有看到erlang传说当中的上百万进程。或者是我的代码写的不好?当然,Rust还是一门在发展当中的语言,我相信它能变得更好。
欢迎各位看官拍砖,欢迎各种喷子。

标签:spawn,erlang,如下,并发,Rust,Erlang,loop
来源: https://blog.51cto.com/huanghongqiao/2748318

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有