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整理的一些心得和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及其应用

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

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

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

    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 有关信息参见: ...

    java php python erlang 千万级内存数据性能比较

    Erlang的字典数据结构通常比其他语言的哈希表更快,因为它优化了并发访问和内存管理。 接下来是Java,它以其跨平台能力和丰富的库而闻名。"java_class_arr_data_test.jar"和"java_string_arr_data_test.jar"可能是...

    Erlang的高级特性和应用

    Erlang 的分布式特性使其能在多个节点之间轻松部署和管理应用程序。它内置了分布式的原语,支持cnode和jnode,进程可以在节点间自由迁移。节点间的通信高效、安全,通过epmd实现类似DNS的名称解析。OTP(Open ...

    Erlang游戏程序学习完整PDF手册

    这份"Erlang游戏程序学习完整PDF手册"是一份全面介绍Erlang在游戏开发中应用的学习资料,包含了Erlang的基础知识、并发原理以及在游戏开发中的实践案例。 Erlang语言的设计理念源自于Ericsson公司为解决电信系统中...

    confetti, Erlang配置提供程序/应用程序.zip

    confetti, Erlang配置提供程序/应用程序 纸屑五彩纸屑是你的Erlang应用程序的配置提供程序。基本上是 application:get_env/2 在类固醇上。特性管理控制台可以通过telnet维护部门访问将为你 love在运行时重新加载( ...

    Erlang开发及应用

    Erlang开发及应用

    Erlang项目内存泄漏分析方法

    3. 使用Erlang Shell进行内存分析:Erlang自带的shell提供了很多有用的命令用于诊断问题。比如使用`erlang:memory()`命令可以看到Erlang emulator分配的内存情况,包括总的内存使用量、atom使用的内存和process消耗...

    Erlang应用程序接口 - Topic at CN Erlounge III

    我在Erlounge III大会上的讲演PPT。 相关的视频在这里: http://groups.google.com/group/erlang-china/browse_thread/thread/2154c39503795edc

    erlang高级原理和应用PPT

    综上所述,这份PPT将为学习者提供一个深入了解Erlang高级特性和实际应用的平台,帮助他们掌握构建高可用、高性能系统的关键技术。通过链接提供的博客和PPT的结合学习,可以更好地掌握Erlang编程并提升相关技能。

    erlang -c语言程序接口.pdf

    Erlang作为一种专为构建高并发、容错性强的应用程序而设计的语言,在与其他语言(如C语言)的集成方面具有独特的优势。本文将详细介绍Erlang与C语言之间接口的具体实现方式及其工作原理。 #### 二、Erlang与C语言...

    Erlang虚拟机内存管理

    Erlang核心开发者Lukas Larsson在2014年3月份Erlang Factory上的一个演讲详细介绍了Erlang内存体系的原理以及调优案例 根据siyao zheng博客上听写的资源进行的翻译,大致只翻译了80%但核心部分已经完整,希望对大家...

    编写分布式的Erlang程序:陷阱和对策

    然而,即便是这样一种设计完善的语言,在实际应用中也会遇到挑战。 #### 分布式陷阱 在深入分析之前,先明确一下分布式陷阱的含义。这里提到的陷阱主要指的是在开发分布式Erlang程序时可能会遇到的问题,这些问题...

Global site tag (gtag.js) - Google Analytics