0 0

erlang的bug?,timer:sleep(1000)CPU占用很高的问题10

timer:sleep(T)的实现:
receive
after T -> ok
end
其中有个问题,如果sleep或者after的时间为1000ms时,cpu占用很高,测试代码如下:
-module(ctrl).
-compile(export_all). 

start(0, _Ms) ->
	ok;
start(N, Ms) ->
	timer:sleep(10),
	spawn(?MODULE, test, [Ms]),
	start(N-1, Ms).
	
test(Ms) ->
	test(Ms, 20).
test(_Ms, 0) ->
	ok;
test(Ms, N) ->
	timer:sleep(Ms),
	test(Ms, N-1).


调用ctrl:start(20,1000).cpu占用约在30%;
调用ctrl:start(20,999).只要不是1000,cpu基本不占,erlang的bug?
2010年8月23日 13:32

1个答案 按时间排序 按投票排序

0 0

你测试的系统是windows吧,我在linux上没有重现这个现象。搜索了下,似乎只有win32上有这个问题
http://erlang.2086793.n4.nabble.com/timer-sleep-bug-td2089074.html

2010年8月23日 13:32

相关推荐

    erlang的timer和实现机制

    Erlang是一种面向并发的、动态类型的编程语言,尤其适合构建高可用性和容错性的分布式系统。在Erlang中,`timer`模块是用于处理延时操作和定时任务的关键工具,它提供了丰富的功能,使得开发者能够优雅地处理时间...

    erlang入门级练习:LeetCode OJ问题的部分erlang 源码

    我自己在新学erlang,在LeetCode OJ上找了题目练习,题目很适合新手熟悉语言,但是LeetCode OJ里面只有几门主流语言的答案,下面是已完成的erlang源代码,后续有空再做其他问题续传,题目包含:(源码开头都有题目...

    erlang-23.2.1-1.el7.x86-64.rpm

    Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ 是用 Erlang 编写的,因此需要 Erlang 运行时。确保安装了兼容的 Erlang 版本;Erlang:RabbitMQ ...

    《Erlang之父:为什么面向对象很糟糕》PDF

    《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF 《Erlang之父:为什么面向对象很糟糕》PDF

    RabbitMQ 23 道面试题及答案.docx

    答案:RabbitMQ 是基于 erlang 语言开发的,提供了高性能和可靠性的消息队列服务。 13. RabbitMQ 的缺陷是什么? 答案:RabbitMQ 的缺陷包括自身是基于 erlang 语言开发的,导致较难分析源码和进行深层次的源码...

    Centos7安装RabbitMQ的文档和安装包(包含erlang安装包).rar

    RabbitMQ基于Erlang编程语言,因此在安装RabbitMQ之前,我们需要先安装Erlang环境。本文将涵盖以下几个关键知识点: 1. **Erlang安装**: Erlang是RabbitMQ的基础,因为RabbitMQ是用Erlang编写的。首先,我们需要...

    RabbitMQ3.9.13和ErLang24.2版本

    **RabbitMQ 3.9.13与Erlang 24.2 版本详解** RabbitMQ是一款开源的消息代理和队列服务器,它使用AMQP(Advanced Message Queuing Protocol)协议,广泛应用于分布式系统中的消息传递。RabbitMQ 3.9.13是该软件的一...

    erlang整理的一些心得和lunix查看cpu和内存信息的方法

    在IT领域,Erlang是一种强大的并发编程语言,主要用于构建高可用性、容错性和分布式系统。它以其轻量级进程、消息传递和热代码升级等特性而闻名。Unix(包括其衍生版本如Linux)是广泛使用的操作系统,具有丰富的...

    Erlang安装包,版本:otp_win64_24.1.7.exe

    otp_win64_24.1.7.exe

    图书:Erlang和OTP实战

    书中的"Manning.Erlang.and.OTP.in.Action.2010.pdf"很可能是该书的电子版,读者可以通过这个PDF文件全面学习Erlang和OTP的知识,包括理论介绍、代码示例和实际案例分析,从而提升在并发处理和分布式系统开发方面的...

    erlang-memoiz:Erlang的记忆库

    ok = memoiz:do(timer, sleep, [1000]), ... %% and this call will return almost immediately: ok = memoiz:do(timer, sleep, [1000]), ... 或使用功能对象: ... ok = application:start(memoiz), ... %% this ...

    Erlang and OTP in Action MEAP May 2010

    Erlang and OTP in Action Martin Logan, Eric Merritt, and Richard Carlsson MEAP Began: August 2008 Softbound print: May 2010 (est.) | 500 pages ISBN: 1933988789 Part One: Getting Past Pure Erlang; ...

    erlang_lpc:Erlang 的高度并行本地 RPC 式 pmap 执行框架

    液化石油气 LPC 的代码源自 Erlang 的 RPC 的 OTP 源。 它已被修剪和修改为仅包含在节点... [fun(X) -> timer:sleep(100), X end], lists:seq(1, 10000)), do_async_work() -> % Non-blocking call to async/3 to sta

    erlang资源

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson开发,用于构建高可用性、分布式和实时系统。这个“erlang资源”包含两本PDF书籍——《Erlang并发编程》和《Erlang入门手册》,它们是深入...

    Erlang的高级特性和应用

    Erlang 以其简洁的代码实现高并发,如单个CPU可以处理16000个并发请求,优于某些顶级的Web服务器。其代码覆盖率工具cover确保了高度的可靠性和低错误率。此外,Erlang支持无缝扩展到多CPU,性能几乎线性增长,并且有...

    erlang文献及资料汇总

    erlang文献及资料汇总 入门资料: erlang中文手册(R11B 文档译文,最适合入门) erlang位运算与二进制解析 erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 ...

    erlang_ls:Erlang 语言服务器

    erlang_ls 一个实现微软语言服务器协议 3.15 的 Erlang 服务器。最低要求 快速开始编译项目: make要在/usr/local/bin安装生成的erlang_ls escript: make install命令行参数这些是可以提供给erlang_ls脚本的命令行...

    erlang 24.0 龙芯 loongarch64 预编译版本

    Erlang是一种强大的并发编程语言,特别适合于构建高可用性、分布式系统,尤其是在电信、银行和互联网领域广泛应用。在给定的标题“erlang 24.0 龙芯 loongarch64 预编译版本”中,我们可以看到这个软件包是为龙芯...

    Erlang入门:构建application练习4(进程link的作用)

    它允许开发者构建出能够优雅处理错误和异常的分布式系统,这是Erlang在高可用性和容错性领域中的强大之处。然而,使用`link`也需要注意,不当的链接可能导致进程意外退出,因此在设计系统时应谨慎考虑进程间的链接...

Global site tag (gtag.js) - Google Analytics