在Python中,查看内存使用情况可以通过以下几种方法:
1. 使用`sys.getsizeof()`函数:
import sys
my_var = "Hello World"
print(sys.getsizeof(my_var)) 输出对象占用的内存大小,单位是字节
2. 使用第三方库`pympler`中的`asizeof`函数来查看对象及其引用的对象的总内存使用情况:
from pympler import asizeof
my_list = [1, 2, [3, 4, [5, 6]]]
print(asizeof.asizeof(my_list)) 输出对象及其引用的对象的总内存使用情况
3. 使用`tracemalloc`模块跟踪内存分配情况:
import tracemalloc
tracemalloc.start()
你的代码
snapshot = tracemalloc.take_snapshot()
top_stats = snapshot.statistics('lineno')
for stat in top_stats[:10]:
print(stat)
4. 使用`psutil`库获取进程的内存使用情况:
import psutil
process = psutil.Process(os.getpid())
memory_info = process.memory_info()
print(f"Memory used by the process: {memory_info.rss / 1024 / 1024} MB") 输出进程使用的内存大小,单位是兆字节
5. 使用`memory_profiler`装饰器分析代码的内存使用情况:
from memory_profiler import profile
@profile
def test():
a = np.full((600, 700), fill_value=99.0)
return a
if __name__ == "__main__":
a = test()
print(f"A: {psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024} MB")
del a
gc.collect()
print(f"B: {psutil.Process(os.getpid()).memory_info().rss / 1024 / 1024} MB")
以上方法可以帮助你了解Python程序中不同对象的内存占用情况。需要注意的是,`sys.getsizeof()`只返回对象本身占用的内存大小,不包括其引用的其他对象。如果你需要查看包括引用对象在内的总内存使用情况,可以考虑使用`pympler`或`memory_profiler`
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://sigusoft.com/bj/143603.html