0 0

erlang应用程序,top出来的内存要比实际使用的多,为什么?20

linux下,使用erlang开发一程序。测试性能时,发现用linux top指令显示的内存使用量(Res),比 用erlang:memory() 或 etop显示的内存使用量要多。这是为什么?
个人认为,很可能跟erlang vm - beam 的内存回收机制有关。为了减少与os的交互次数、提高内存分配效率,beam 回收的free memory blocks没有立刻返回给os,而是留下来 等待分配给erlang进程,linux的top指令把这一部分算作了erlang应用的内存使用量; 而erlang:memory()则只计算进程自身正在使用的内存,对于曾经使用过 已经被gc掉、但vm没有返回给os的那一部分 free memory blocks则不统计)。
2013年4月05日 17:17

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

0 0

erlang:memory/0统计的是由emulator分配管理的内存,而top则是统计emulator所使用的内存.显然top显示的使用量要多.详细请参阅memory/0函数文档中的Note说明:http://erlang.org/doc/man/erlang.html#memory-0

2013年4月07日 12:38

相关推荐

    Erlang程序设计(第2版)1

    【Erlang程序设计(第2版)】是由Erlang之父Joe Armstrong撰写的一本经典著作,专注于介绍Erlang编程语言在并发、分布式和容错系统中的应用。本书适用于初学者和有一定经验的Erlang程序员。作者在书中讨论了如何利用...

    Erlang应用优化指南

    Erlang应用优化指南 Erlang应用优化指南

    Erlang程序设计中文版

    8. **实际应用案例**:除了理论知识,本书还包含了一些实际的Erlang项目示例,例如构建Web服务器、实时消息系统和分布式数据库等,以帮助读者将所学应用于实践。 通过阅读《Erlang程序设计中文版》并结合提供的完整...

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

    6. **OTP(Open Telecom Platform)**:OTP 是一组设计原则、库和工具,为Erlang应用提供了标准框架,包括行为、设计模式和错误管理机制。 ### Linux 查看 CPU 和内存信息 1. **top 命令**:实时显示系统总体的CPU...

    gcm-erlang, 用于Google云消息传递的Erlang应用程序.zip

    gcm-erlang, 用于Google云消息传递的Erlang应用程序 gcm 软件提供了一个用于 Google Cloud Messaging的Erlang客户机。,你可以对 gcm-erlang做什么:你可以以使用 gcm-erlang:启动几个代表由不同 GCM API keys 定义...

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

    Erlang并发编程,Erlang程序设计,Erlang中文手册。 学习erlang的好资料。  Erlang是一个结构化,... 使用Erlang来编写分布式应用要简单的多,因为它的分布式机制是透明的:对于程序来说并不知道自己是在分布式运行。

    Erlang程序设计(第二版)及源码

    书中兼顾了顺序编程、并发编程和分布式编程,重点介绍如何编写并发和分布式的Erlang程序以及如何在多核CPU上自动加速程序,并深入地讨论了开发Erlang应用中至关重要的文件和网络编程、OTP、ETS和DETS等主题。...

    Erlang程序设计及源码

    OTP是Erlang生态系统的核心,提供了一系列库和设计模式,如行为(Supervisor、GenServer等)、应用程序框架和工具,帮助开发者构建可靠、可维护的系统。 8. **Erlang源码分析** 配套的源码文件可以帮助读者更好地...

    Erlang及其应用Erlang及其应用

    5. **跨平台运行**:Erlang的运行时环境类似于Java虚拟机,代码可以在不同架构上编译并运行,这为跨平台应用开发提供了便利。此外,运行时系统允许在不中断程序的情况下更新运行中的代码,实现了热升级。 6. **...

    erlang程序设计与入门

    在Erlang中,程序被视为一系列相互独立的函数调用,而不是状态改变的过程。这使得代码更易于理解和测试,因为函数没有副作用,数据不可变。 2. **并发处理** Erlang的并发机制基于轻量级进程(Lightweight ...

    erlang程序设计相关例子程序

    通过对这些文件名的分析,我们可以看出这些Erlang程序涵盖了并发处理、进程通信、异常处理、服务器设计、数据处理和测试等多个方面,体现了Erlang在构建分布式系统中的强大功能。学习并理解这些示例,对于深入掌握...

    Erlang程序设计,包含完整目录和全套源码

    "全套源码"则提供了实践案例,帮助你深入理解Erlang编程的实际应用。通过研究这些源码,你可以学习如何运用Erlang构建实际项目,提高编程技能。对于想要深入Erlang世界的开发者来说,这是一个宝贵的资源库。

    chronica, Erlang应用程序的日志框架.zip

    chronica, Erlang应用程序的日志框架 [This document translated on russian] ( https://github.com/eltex-ecss/chronica/blob/master/README_RU.md )概述Chro

    [Erlang程序设计]源代码

    本资源包含了《Erlang程序设计》一书的所有实例代码,旨在帮助读者深入理解Erlang语言的核心特性和实际应用。 **一、函数式编程基础** Erlang作为函数式编程语言,其核心概念包括不可变数据、纯函数和副作用的最小...

    erlang 程序设计 源码

    - **数据结构的使用**:Erlang的列表、元组、映射等数据结构在源码中的应用。 - **模式匹配和函数定义**:了解如何通过模式匹配来简化代码,以及函数多态性的实现。 - **OTP库的使用**:观察源码中是如何利用OTP提供...

    Erlang应用程序接口(视频,1/4)

    这是第一卷。 在2008 CN Erlounge III的“Erlang应用程序接口”讲演的视频。PPT等其它资料在这里: http://blog.csdn.net/aimingoo/archive/2009/01/14/3777765.aspx 有关信息参见: ...

    Erlang应用程序接口(视频,4/4)

    这是第四卷。 在2008 CN Erlounge III的“Erlang应用程序接口”讲演的视频。PPT等其它资料在这里: http://blog.csdn.net/aimingoo/archive/2009/01/14/3777765.aspx 有关信息参见: ...

    Erlang程序设计及源代码打包

    **Erlang程序设计概述** Erlang是一种面向并发的、函数式的编程语言,由瑞典电信设备制造商Ericsson开发,主要用于构建高可用性、容错性强的分布式系统。《Erlang程序设计》这本书,作者是Joe Armstrong,他是...

Global site tag (gtag.js) - Google Analytics