有时为了对电脑、服务器做运行情况监控,需要获取内存、cpu的使用情况。当处理CT图像数据的时候,由于需要内存较大,因此容易出现内存不足的问题,对此,在处理数据之前预先检查剩余内存是否充足很有必要。以下分别是三种编程语言下的内存检查代码。
C++检查可用内存:
#include <windows.h>
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
MEMORYSTATUSEX memInfo;
memInfo.dwLength = sizeof(MEMORYSTATUSEX);
GlobalMemoryStatusEx(&memInfo);
cout << "Total memory: " << memInfo.ullTotalPhys / 1024 / 1024 << " MB" << endl;
cout << "Available memory: " << memInfo.ullAvailPhys / 1024 / 1024 << " MB" << endl;
cout << "Memory load: " << memInfo.dwMemoryLoad << "%" << endl;
return 0;
}
python检查可用内存:
# 先下载psutil库:pip install psutil
# 下载地址 https://pypi.org/project/psutil/5.6.2/
import psutil
def getMemCpu():
data = psutil.virtual_memory()
total = data.total # 总内存,单位为byte
print('total',total)
free = data.available # 可用内存
print('free',free)
memory = "Memory usage:%d" % (int(round(data.percent))) + "%" + " " # 内存使用情况
print('memory',memory)
cpu = "CPU:%0.2f" % psutil.cpu_percent(interval=1) + "%" # CPU占用情况
print('cpu',cpu)
if __name__ == "__main__":
getMemCpu()
MATLAB检查可用内存:文章来源:https://www.toymoban.com/news/detail-825656.html
%% 检查内存是否足够
system_dependent memstats
[userview, systemview] = memory;
available_size = systemview.PhysicalMemory.Available; %bytes
if strcmpi(params.precision, 'single')
need_size = counts*w*h*4;
end
if strcmpi(params.precision, 'double')
need_size = counts*w*h*8;
end
need_size = need_size*2/1024/1024 + 1600; %1600M为MATLAB活动时占用的内存
available_size = available_size/1024/1024;
final_size = (available_size - need_size);
fprintf('运行程序预计需要的内存大小:%f M\n', need_size);
fprintf('运行程序后预计剩余的内存大小:%f M\n', final_size);
if final_size < 1024
warning('剩余内存较小')
end
if need_size/available_size > 0.95
error('内存空间不足');
end
参考文献:
[1] python内存检查文章来源地址https://www.toymoban.com/news/detail-825656.html
到了这里,关于C++/Python/MATLAB检查内存使用情况的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!