2017-03-04 120 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

認爲必須有這樣的事情! –