从Julia获取系统内存信息

5
有没有一种简便的方法在Julia中获取当前系统信息(我的用例是内存,但也对从Linux上运行top获得的任何信息感兴趣)。
目前我只有以下代码:(基本上只是获取`free -m`的输出)<- 我无法让它让我转义反引号并保持代码高亮...
import Base.DataFmt: readdlm_string, invalid_dlm

"""
    getmeminfo()
Returns (in MB) A tuple of containing:
    - Memory(total, used, buffer, available)
    - Swap(total, used, free)
"""
function getmeminfo()
    memstats = readdlm_string(readstring(`free -m`),invalid_dlm(Char), Int, '\n', true, Dict())
    return Tuple{Array{Int,1},Array{Int,1}}((memstats[2,[2;3;6;7]], memstats[3,[2;3;4]]))
end

有没有在Base中找到对应的功能或者更好的想法?

1
在Linux(也许是Mac)上,您还可以查看cat /proc/meminfofree也是Unix特定的)。 - Dan Getz
啊,是的,readdlm("/proc/meminfo") 更加简洁... - Alexander Morley
1个回答

17

内置的 Sys 模块包含用于检索系统信息的函数。

julia> VERSION
v"1.0.0"

julia> Sys.total_memory() / 2^20
8071.77734375

julia> Sys.free_memory() / 2^20
5437.46484375

julia> Sys.CPU_NAME
"haswell"

julia> Sys.
ARCH              KERNEL             WORD_SIZE          eval               isexecutable       set_process_title
BINDIR            MACHINE            __init__           free_memory        islinux            total_memory
CPU_NAME          SC_CLK_TCK         _cpu_summary       get_process_title  isunix             uptime
CPU_THREADS       STDLIB             _show_cpuinfo      include            iswindows          which
CPUinfo           UV_cpu_info_t      cpu_info           isapple            loadavg            windows_version
JIT               WINDOWS_VISTA_VER  cpu_summary        isbsd              maxrss
julia> # Above after pressing Tab key twice

虽然它不支持 top 提供的所有信息,但它希望能够提供您正在寻找的信息。


一直觉得肯定有这样的东西! - Alexander Morley
注意:这些命令返回的是以字节为单位的内存量,所以除以2^20可以得到可用内存的MB数。 - AlexQueue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接