diff options
| author | ruki <[email protected]> | 2022-07-28 00:49:29 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2022-07-28 00:49:29 +0800 |
| commit | d0adfab467cb037947e04517063cf2c650c57e36 (patch) | |
| tree | a8dfb235d0f8e5ebd5813194debd92b7944c323c /xmake/core/base/memory.lua | |
| parent | cbde43760f32030de7cf46c32a76421d86529271 (diff) | |
cache meminfo
Diffstat (limited to 'xmake/core/base/memory.lua')
| -rw-r--r-- | xmake/core/base/memory.lua | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/xmake/core/base/memory.lua b/xmake/core/base/memory.lua index 53b6fe65e..3bd00813d 100644 --- a/xmake/core/base/memory.lua +++ b/xmake/core/base/memory.lua @@ -22,14 +22,19 @@ local memory = memory or {} -- load modules -local os = require("base/os") +local os = require("base/os") -- get memory info function memory.info(name) - -- TODO we need cache per 10s - local meminfo = os._meminfo() - if meminfo.totalsize and meminfo.availsize then - meminfo.usagerate = (meminfo.totalsize - meminfo.availsize) / meminfo.totalsize + local meminfo = memory._MEMINFO + local memtime = memory._MEMTIME + if meminfo == nil or memtime == nil or os.time() - memtime > 10 then -- cache 10s + meminfo = os._meminfo() + if meminfo.totalsize and meminfo.availsize then + meminfo.usagerate = (meminfo.totalsize - meminfo.availsize) / meminfo.totalsize + end + memory._MEMINFO = meminfo + memory._MEMTIME = os.time() end return name and meminfo[name] or meminfo end |
