Python获取字典变量内存占用的四种方法

 更新时间:2025年09月17日 09:57:48   作者:东北豆子哥  
本文主要介绍了Python获取字典变量内存占用的四种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

在Python中,有几种方法可以获取字典变量所占用的内存信息:

1. 使用sys模块的getsizeof()函数

import sys

my_dict = {'a': 1, 'b': 2, 'c': 3}
memory_usage = sys.getsizeof(my_dict)
print(f"字典占用内存: {memory_usage} 字节")

注意:getsizeof()只返回字典对象本身的大小,不包括字典中键和值所占用的内存。

2. 使用pympler库获取更精确的内存信息

from pympler import asizeof

my_dict = {'a': [1, 2, 3], 'b': {'x': 10, 'y': 20}}
memory_usage = asizeof.asizeof(my_dict)
print(f"字典及其内容总内存: {memory_usage} 字节")

asizeof()会递归计算对象及其所有内容占用的内存。

3. 使用memory_profiler库

from memory_profiler import memory_usage

def create_dict():
    return {str(i): i for i in range(10000)}

mem_usage = memory_usage(create_dict)
print(f"内存使用变化: {mem_usage} MB")

4. 自定义递归计算函数

import sys

def get_total_size(obj):
    size = sys.getsizeof(obj)
    if isinstance(obj, dict):
        for key, value in obj.items():
            size += get_total_size(key)
            size += get_total_size(value)
    elif isinstance(obj, (list, tuple, set)):
        for item in obj:
            size += get_total_size(item)
    return size

my_dict = {'a': [1, 2], 'b': {'x': 'hello'}}
print(f"总内存占用: {get_total_size(my_dict)} 字节")

注意事项

  1. Python的内存管理有优化,简单的对象可能比预期占用更少内存
  2. 字典的内存占用会随着元素增加而非线性增长
  3. 不同Python版本的内存占用可能有所不同
  4. 对于大型数据结构,测量内存占用本身可能会消耗较多内存

以上方法可以帮助你了解字典变量在内存中的占用情况,选择适合你需求的方法即可。

到此这篇关于Python获取字典变量内存占用的四种方法的文章就介绍到这了,更多相关Python获取字典变量内存占用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python3列表List入门知识附实例

    Python3列表List入门知识附实例

    序列是Python中最基本的数据结构。序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推
    2020-02-02
  • 在django ninja中处理异常问题

    在django ninja中处理异常问题

    文章介绍了Django Ninja中内置异常的使用方法,展示了如何覆写这些异常类的处理函数来改变返回结果,并以创建一个自定义的500服务不可用异常类为例,详细说明了如何定义自定义异常和为其添加处理函数
    2026-01-01
  • Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作

    Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作

    这篇文章主要介绍了Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作,涉及Python使用str.startswith()和str.endswith()方法针对字符串开始或结尾处特定文本匹配操作相关实现技巧,需要的朋友可以参考下
    2018-04-04
  • Django Admin中增加导出CSV功能过程解析

    Django Admin中增加导出CSV功能过程解析

    这篇文章主要介绍了Django Admin中增加导出CSV功能过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • Python 导入文件过程图解

    Python 导入文件过程图解

    这篇文章主要介绍了Python 导入文件过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10
  • 用Python实现石头剪刀布游戏

    用Python实现石头剪刀布游戏

    大家好,本篇文章主要讲的是用Python实现石头剪刀布游戏,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-01-01
  • Python自定义线程类简单示例

    Python自定义线程类简单示例

    这篇文章主要介绍了Python自定义线程类,结合简单实例形式分析Python线程的定义与调用相关操作技巧,需要的朋友可以参考下
    2018-03-03
  • 举例讲解Python常用模块

    举例讲解Python常用模块

    今天小编就为大家分享一篇关于举例讲解Python常用模块,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Python移动文件到新文件夹的完整指南与实用技巧

    Python移动文件到新文件夹的完整指南与实用技巧

    本文将详细介绍如何使用Python高效安全地移动文件到新文件夹,同时保持文件名不变,并提供多种实用场景的解决方案,有需要的小伙伴可以了解下
    2026-01-01
  • Python实现发送声情并茂的邮件内容和附件

    Python实现发送声情并茂的邮件内容和附件

    Python是一种高级编程语言,它可以用于编写各种类型的应用程序,包括发送电子邮件。本文就来演示如何使用Python发送HTML格式的电子邮件,感兴趣的可以了解一下
    2023-04-04

最新评论