最近在看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还是一门在发展当中的语言,我相信它能变得更好。
欢迎各位看官拍砖,欢迎各种喷子。

©著作权归作者所有:来自51CTO博客作者huanghongqiao的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 使用 IXMLHTTPRequest 简单获取网页源代码
  2. 检索用到汇编代码的单元
  3. Delphi 的链式代码
  4. 使用 IntraWeb (32) - Url 映射与 THandlers
  5. 你还在手撕微服务?快试试 go-zero 的微服务自动生成
  6. 【php基础入门】运算符、流程控制语句及单双引号和模块化编程的
  7. 一些Java开发人员在编程中常见的雷!
  8. Unity小游戏之闯关小游戏
  9. 10行C++代码实现高性能HTTP服务

随机推荐

  1. C#学习之面向对象如何调用类以及普通方法
  2. Ruby和C ++之间的异同点是什么?
  3. .net中的重载是什么?
  4. C++ vector容器函数使用范例
  5. 【C语言】5种妙招教你轻松搞定变量值交换
  6. c++经典例题之先序二叉树的构建
  7. C#用来做什么的
  8. C中printf、sprintf和fprintf的区别(代码
  9. .net的错误处理机制是什么
  10. 如何用C++读取ini文件中的Section节名