erlang:memory()vs memsup:get\u system\u memory\u data()
对不起,我不太清楚erlang文档中的以下描述: erlang:memory()->[{Type,Size}] 类型:“总计”表示:“当前分配的内存总量。这与进程和系统的内存大小之和相同。” memsup:get_system_memory_data()->MemDataList MemDataList=[{Tag,Size}] 带标记:“total_memory”表示:“Erlang emulator可用、已分配和可用的内存总量。可能等于也可能不等于系统中配置的内存量。”erlang:memory()vs memsup:get\u system\u memory\u data(),memory,erlang,Memory,Erlang,对不起,我不太清楚erlang文档中的以下描述: erlang:memory()->[{Type,Size}] 类型:“总计”表示:“当前分配的内存总量。这与进程和系统的内存大小之和相同。” memsup:get_system_memory_data()->MemDataList MemDataList=[{Tag,Size}] 带标记:“total_memory”表示:“Erlang emulator可用、已分配和可用的内存总量。可能等于也可能不等于系统中配置的内存量。” 这里有没有人能让我们
这里有没有人能让我们更容易理解呢?
erlang:memory/0,1
显示了erlang虚拟机(BEAM)的当前状态<代码>内存支持:获取系统内存数据/0显示操作系统的当前状态
1> erlang:memory(total) / (1 bsl 20).
12.918495178222656
2> memsup:get_system_memory_data().
[]
3>
=WARNING REPORT==== 13-Jan-2018::10:51:15 ===
OS_MON (memsup) called by <0.61.0>, not started
3> application:ensure_all_started(os_mon).
=PROGRESS REPORT==== 13-Jan-2018::10:51:41 ===
...
=INFO REPORT==== 13-Jan-2018::10:51:41 ===
alarm_handler: {set,{system_memory_high_watermark,[]}}
4> proplists:get_value(total_memory,memsup:get_system_memory_data()) / (1 bsl 30).
7.691337585449219
5> erlang:memory(total) / (1 bsl 20).
14.661575317382813
1>erlang:memory(总计)/(1bsl20)。
12.918495178222656
2> memsup:get\u system\u memory\u data()。
[]
3>
=警告报告===2018年1月13日::10:51:15===
OS_MON(memsup)由调用,未启动
3> 应用程序:确保所有已启动(操作系统)。
=进度报告===2018年1月13日::10:51:41===
...
=信息报告===2018年1月13日::10:51:41===
报警处理程序:{set,{system\u memory\u high\u watermark,[]}
4> PropList:get_值(总内存,memsup:get_系统内存数据())/(1 bsl 30)。
7.691337585449219
5> erlang:内存(总计)/(1 BSL20)。
14.661575317382813
这意味着我的光束在启动后使用了12.9MB内存。要获取操作系统内存,您必须启动OS\u mon
应用程序。我的操作系统有7.69GB可用空间,可能被BEAM使用。在启动操作系统所需的所有应用程序后,我的BEAM使用了14.7MB