鱼C论坛

 找回密码
 立即注册
查看: 1669|回复: 9

[已解决]python判断内存占用

[复制链接]
发表于 2023-4-29 17:59:29 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
有什么函数可以判断某函数的内存占用情况吗
最佳答案
2023-4-29 18:00:38
要度量Python函数的内存使用情况,您可以使用 memory_profiler 这个库。首先,您需要安装这个库,使用pip进行安装:
pip install memory-profiler

然后,在您的Python代码中导入 memory_profiler 库并使用装饰器 @profile 来分析您的函数。例如:
from memory_profiler import profile

@profile
def my_function():
    # 您的函数实现

if __name__ == '__main__':
    my_function()

运行带有 @profile 装饰器的函数时,它会输出内存使用情况的报告。要运行这个脚本并查看报告,您需要在命令行中使用 -m memory_profiler 参数来执行脚本:
python -m memory_profiler your_script.py

此外,还有一些其他方法可以检测内存使用情况,如 psutil 库,但 memory_profiler 对于函数级别的内存分析是非常实用的。

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
歌者文明清理员 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-4-29 18:00:38 | 显示全部楼层    本楼为最佳答案   
要度量Python函数的内存使用情况,您可以使用 memory_profiler 这个库。首先,您需要安装这个库,使用pip进行安装:
pip install memory-profiler

然后,在您的Python代码中导入 memory_profiler 库并使用装饰器 @profile 来分析您的函数。例如:
from memory_profiler import profile

@profile
def my_function():
    # 您的函数实现

if __name__ == '__main__':
    my_function()

运行带有 @profile 装饰器的函数时,它会输出内存使用情况的报告。要运行这个脚本并查看报告,您需要在命令行中使用 -m memory_profiler 参数来执行脚本:
python -m memory_profiler your_script.py

此外,还有一些其他方法可以检测内存使用情况,如 psutil 库,但 memory_profiler 对于函数级别的内存分析是非常实用的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-29 18:14:00 | 显示全部楼层
本帖最后由 liuhongrun2022 于 2023-4-29 18:15 编辑

import time
from memory_profiler import profile

@profile
def a():
    # 你的代码!

if __name__ == '__main__':
    a()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-29 18:35:24 | 显示全部楼层
在Python中,您可以使用sys模块中的getsizeof()函数来获取一个对象的大小,从而判断函数的内存占用情况。

例如,以下代码将使用getsizeof()函数来获取一个字符串对象的大小,并打印出其占用的字节数:
import sys

s = "Hello World!"
print(sys.getsizeof(s))  # 输出:38
您可以将该函数用于您感兴趣的函数对象,并观察输出结果来了解其内存占用情况。需要注意的是,由于Python中的一些优化机制,getsizeof()函数返回的值并不总是准确的,但是它可以作为一个粗略的指标来判断对象的内存占用情况。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-29 18:36:37 | 显示全部楼层
陶远航 发表于 2023-4-29 18:35
在Python中,您可以使用sys模块中的getsizeof()函数来获取一个对象的大小,从而判断函数的内存占用情况。
...

我要的是函数大小

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
歌者文明清理员 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-29 18:37:43 | 显示全部楼层
Threebody1 发表于 2023-4-29 18:36
我要的是函数大小

好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-4-29 18:44:43 | 显示全部楼层
isdkz 发表于 2023-4-29 18:00
要度量Python函数的内存使用情况,您可以使用 memory_profiler 这个库。首先,您需要安装这个库,使用pip进 ...

捕获.PNG
whats size of MiB

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
歌者文明清理员 + 5 + 5 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-29 18:59:58 | 显示全部楼层

?你是觉得大了还是小了?

点评

1MiB = 8Mib  发表于 2023-4-29 19:13
Mib多大  发表于 2023-4-29 19:11
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 11:21

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表