2017-03-04 119 views
3

有没有一种很好的方式来获取茱莉亚当前的系统信息(我的使用案例是内存,但也对我在Linux上运行top时可以获得的基本信息感兴趣)。从julia获取系统内存信息

这是我的时刻:(基本上是刚开的'自由-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/meminfo'('free'也是Unix的具体情况) –

+0

ahh yeah,'readdlm(“/​​ proc/meminfo”)'更简洁。 .. –

回答

8

内置Sys模块包含专用于检索系统信息的功能。

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

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

julia> Sys.cpu_name 
"haswell" 

julia> Sys. 
ARCH    SC_CLK_TCK   cpu_info   loadavg 
CPU_CORES   UV_cpu_info_t  cpu_name   maxrss 
CPUinfo   WINDOWS_VISTA_VER cpu_summary  set_process_title 
JIT    WORD_SIZE   eval    total_memory 
KERNEL   __init__   free_memory  uptime 
MACHINE   _cpu_summary  get_process_title windows_version 

虽然它不支持所有的由top提供的信息,它有望提供你正在寻找的信息。

+0

认为必须有这样的事情! –