`
mryufeng
  • 浏览: 977720 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

erlang的IO高效不是传说

阅读更多
[root@haserver ~]# erl -smp +K true
Erlang (BEAM) emulator version 5.6.5 [source] [smp:2] [async-threads:0] [hipe] [kernel-poll:true]

Eshell V5.6.5  (abort with ^G)
1> erlang:system_info(check_io).
[{name,erts_poll},
{primary,epoll},
{fallback,poll},
{kernel_poll,epoll},
{memory_size,9064},
{total_poll_set_size,2},
{fallback_poll_set_size,0},
{lazy_updates,true},
{pending_updates,0},
{batch_updates,false},
{concurrent_updates,true},

{max_fds,1024}]

erl_poll.c是erlang的poll实现。对epoll的lazy update和concurrent_update进行了大量的优化,batch update在freebsd下管用。我讲过的框架包括libevent,ACE,haproxy等等。只有haproxy进行了lazy update但是没有concurrent方面的努力。

erlang的IO读写大多采用gather write, scatter read 方式,在语法方面就有强大的优势,列表操作隐含的就是这个语义。

致敬,多年前就这门挖空心思高性能!


分享到:
评论

相关推荐

    Erlang深度分析

    ##### 5.1 Erlang的IO高效不是传说 Erlang的IO系统设计得非常高效,无论是处理磁盘IO还是网络IO,都有相应的机制保证高效的并发处理。这一点在构建大规模网络服务时尤其重要。 #### 6. Erlang的新增特性和模块 ###...

    erlang深度分析.pdf

    Erlang遵循“让它失败”原则(Let It Crash),这种设计哲学鼓励系统在出现故障时自动重启,而不是进入不稳定状态。 #### 18. 开发环境和版本控制 Erlang通过内置工具和集成开发环境(IDE)支持便捷的代码管理。...

    erlang编程 Introducing Erlang

    **Erlang编程:Introducing Erlang** Erlang是一种函数式编程语言,由爱立信在1986年开发,主要用于构建...通过阅读这本书,读者将能够理解Erlang如何处理并发、分布式计算和故障恢复,从而构建高效、健壮的软件系统。

    erlang资源

    6. **并行算法**:书中可能包含实例,演示如何使用Erlang实现高效的并行算法,提升计算性能。 《Erlang入门手册》则可能包含以下基础内容: 1. **Erlang语法**:涵盖基本的变量、数据类型(如原子、列表、元组和二...

    erlang 部分源码

    了解这些内部实现有助于理解Erlang如何高效地处理并发。 2. **BEAM虚拟机** BEAM是Erlang虚拟机的缩写,它是Erlang程序运行的基础。BEAM虚拟机执行Erlang字节码,提供了垃圾回收、内存管理等功能。在源码中,你...

    erlang25.0 windows版本

    对于开发者而言,理解Erlang的源码可以帮助他们更好地利用这个平台,实现更高效、更健壮的应用程序。 在使用Erlang进行开发时,你可能需要用到以下工具和概念: - **Rebar3**:Erlang的构建和依赖管理工具,帮助你...

    erlang_版本24.3.4.4

    Erlang是一种面向并发的、函数式编程语言,由...熟悉这些概念和Erlang的编程范式后,你就可以开始构建高效、容错的并发应用程序了。无论是网络服务器、实时通信系统,还是大规模分布式应用,Erlang都能提供强大的支持。

    Erlang 20.3linux安装包

    Erlang是一种面向并发的、函数式编程语言,主要用于构建高度可扩展的、容错性强的分布式系统。在IT行业中,Erlang因其强大的实时性、并发性和内存管理机制而被广泛应用于网络通信、数据库系统以及消息中间件,如...

    erlang文献及资料汇总

    erlang二进制高效编程 erlang异常处理详解 开发经验: 面对软件错误构建可靠的分布式系统 编写分布式的 Erlang 程序:陷阱和对策 硝烟中的Erlang 深入底层: erlang VM基于多核处理器的可伸缩性特征 erlang VM内部...

    Erlang及其应用Erlang及其应用

    Erlang是一种通用编程语言和运行时环境,特别适合于并发、分布式和容错系统。由Ericsson开发的Erlang在大型电信系统中有广泛应用。它最初设计的目标就是解决分布式、高可靠性和软实时性的问题。 1. **并发与消息...

    Erlang官网下载过慢

    RabbitMQ是一个开源的消息代理,它遵循Advanced Message Queuing Protocol (AMQP)标准,提供了一种可靠、高效的消息传递机制。Erlang的并发和分布式特性使其成为构建RabbitMQ的理想选择。 在Erlang和RabbitMQ的异步...

    erlang最新api

    它为开发者提供了一个全面而强大的工具箱,使得编写高效可靠的Erlang程序变得更加容易。根据文档,STDLIB 1.17.4版本发布于2011年5月24日,并遵循Erlang公共许可协议(Version 1.1)。 #### Erlang I/O 协议 ...

    erlang programming

    5. ** OTP (Open Telecom Platform)**:OTP是Erlang的标准库,包含了一系列的设计原则、库和工具,用于帮助开发者构建高效、可靠和可维护的系统。OTP中的行为(Behaviours)如GenServer、GenEvent和Gen_fsm等,提供...

    erlang port driver test

    Erlang 是一种高效、并发、面向进程的编程语言,常用于构建分布式系统。在 Erlang 中,Port Driver 是一种机制,允许 Erlang 进程与外部 C 库或者其他语言编写的程序进行通信。Port Driver 提供了一种方式,使得 ...

    erlang简介

    9. **IO处理**:Erlang的IO系统基于Unix哲学,将所有设备视为文件,支持多种IO模型如kernel poll(如epoll、kqueue),并使用定时器处理和逻辑处理(process、coroutine、fiber)等机制,优化了I/O性能。 10. **...

    erlang22最新下载包

    Erlang是一种面向并发的、函数式编程语言,由瑞典电信设备制造商Ericsson为了实现分布式实时、高可靠性系统而开发。Erlang以其强大的并行处理能力、容错性和易于构建大规模分布式系统的特点,在电信、金融和互联网等...

    Erlang Windows 64位 安装包

    Erlang的并发特性使得RabbitMQ能够高效、可靠地处理大量并发连接和消息交换。 安装Erlang后,为了使用RabbitMQ,还需要额外安装RabbitMQ Server。这通常涉及到下载RabbitMQ的Windows发行版,同样通过执行安装程序来...

    xiandiao_erlang_Erlang课后习题_

    错误通常通过抛出异常来处理,而不是通过复杂的错误检查逻辑。 6. **模式匹配**:Erlang的函数调用允许模式匹配,使得解构复杂数据结构变得简单,提高了代码的可读性和可维护性。 课后习题的实践价值: 1. **理解...

    二郎助手erlang开发工具、erlang编辑器

    3. **错误检查**:实时的语法和逻辑错误检查,让问题在编写代码时就能被发现,而不是在运行时。 4. **调试工具**:集成的调试器可以设置断点,查看变量值,单步执行,帮助开发者深入理解程序运行过程。 5. **开源...

    Erlang并发编程,Erlang程序设计,Erlang中文手册

    进程间上下文切换对于Erlang来说仅仅 只是一两个环节,比起C程序的线程切换要高效得多得多了。 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。

Global site tag (gtag.js) - Google Analytics