news 2026/6/26 1:03:23

类变量和实例变量的内存分配方式对性能的影响具体有哪些?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
类变量和实例变量的内存分配方式对性能的影响具体有哪些?

类变量、实例变量内存分配方式带来的五大具体性能影响

一、内存占用性能

1. 类变量

类定义阶段在堆中只分配唯一一块内存,存放在类对象的__dict__里,所有实例仅保存对这块内存的引用地址,不会复制数据。

  • 优点:海量实例场景下内存高度复用,不会产生大量重复数据;内存占用低,CPU 高速缓存命中率更高,减少操作系统缺页中断、内存换页开销,避免 OOM。
  • 缺点:数据全局共享,一旦修改可变对象,所有实例同步生效。

2. 实例变量

每次实例化都会单独在堆中开辟内存,存入当前实例的__dict__,N 个实例就会分配 N 份独立内存。

  • 缺点:大量实例存储相同常量会造成严重内存冗余,堆内存占用飙升,缓存失效,程序响应变慢。

二、对象实例化(创建)性能

  1. 类变量实例创建时只需要分配实例基础对象头,不需要拷贝类变量,也不需要在__init__中重复执行赋值逻辑,批量创建大量对象速度更快。
  2. 实例变量每次实例化都要执行self.变量 = 值,往实例属性字典写入键值对,属于重复的运行时操作。实例数量越多,总耗时越高,百万级创建场景差距会被明显放大。

三、属性访问性能

类变量两种访问形式

  1. 类名.类变量:直接查询类的属性字典,一次哈希查找,访问速度最快;
  2. 实例.类变量:先检索实例__dict__未命中,再向上遍历类的属性字典,多一层查找链路,速度略慢于实例变量。

实例变量

直接读取当前实例自身的属性字典,仅一次哈希查询,访问速度稳定高效。

说明:常规业务下速度差距微乎其微,只有上亿次高频循环读取场景才会体现差异。

四、垃圾回收(GC)性能

类变量

生命周期绑定类对象,程序运行期间不会被回收,只需要维护一次引用计数。大量实例销毁时,不会频繁变更该变量的引用计数,GC 标记、扫描压力小,GC 停顿(STW)少,高并发服务延迟更稳定。

实例变量

依附单个实例存在,实例创建、销毁都会修改变量引用计数。高频创建销毁临时对象时,会频繁触发 Python 分代 GC,带来程序停顿、接口延迟抖动、系统吞吐量下降等性能问题。

五、可变对象下的并发性能

  1. 类变量为 list/dict 等可变容器所有实例指向同一个内存地址,修改容器内部数据无内存拷贝,读取性能高;但多线程并发修改会出现数据竞争,必须加互斥锁,锁竞争、线程上下文切换会大幅降低并发吞吐量,性能严重下降。

  2. 实例变量为可变容器每个实例拥有独立内存空间,数据天然隔离,无需加锁,没有并发竞争损耗,高并发场景性能更稳定,代价是内存开销更大。

额外隐性性能损耗(极易踩坑)

通过实例.类变量 = 新值并不是修改类变量,而是在当前实例内存中新建同名实例变量。 若大量实例都执行该赋值操作,原本全局复用的类变量会变成海量独立实例变量,直接导致:内存冗余、缓存命中率降低、GC 压力暴增,彻底丧失类变量的性能优势。

补充优化方案

海量实例使用实例变量时,可通过__slots__禁用实例动态属性、移除__dict__,最高可降低 50% 以上实例内存占用,缓解实例变量内存偏高的性能短板。

性能对比汇总表

表格

性能维度类变量实例变量
内存占用低,全局单份内存复用高,每个实例独立分配内存
实例化耗时快,无重复属性写入略慢,每次需要写入实例字典
属性读取速度类名访问最快;实例访问略慢单次哈希查找,访问稳定高效
GC 回收压力小,生命周期长,极少触发回收大,频繁创建销毁易引发 GC 停顿
并发性能(可变对象)需加锁,高并发下锁竞争损耗大数据隔离无锁,并发性能优异

需要我附带简易性能测试代码来量化三种场景的耗时与内存差异吗?

coolcl.cn
www.coolcl.cn
kd8s92.coolcl.cn
mpx73n.coolcl.cn
zr29gw.coolcl.cn
bt57jq.coolcl.cn
lp36vh.coolcl.cn
qf94dz.coolcl.cn
sg25xk.coolcl.cn
nw71rc.coolcl.cn
dj48pm.coolcl.cn
hv63bz.coolcl.cn
gc27ty.coolcl.cn
fs51lw.coolcl.cn
xb97qj.coolcl.cn
mr32dv.coolcl.cn
jt75sz.coolcl.cn
pn49gx.coolcl.cn
vw23kr.coolcl.cn
zh68mc.coolcl.cn
bs91py.coolcl.cn
lf37tz.coolcl.cn
qm52hg.coolcl.cn
sn78dx.coolcl.cn
nw26jk.coolcl.cn
dg43vr.coolcl.cn
hm95bz.coolcl.cn
kt31sy.coolcl.cn
bp67lw.coolcl.cn
zf24qj.coolcl.cn
xv59dm.coolcl.cn
nr72hz.coolcl.cn
dj38gx.coolcl.cn
fw62kr.coolcl.cn
sh94mc.coolcl.cn
bl27py.coolcl.cn
vq51tz.coolcl.cn
mj76hg.coolcl.cn
zs42dx.coolcl.cn
np98jk.coolcl.cn
lc33vr.coolcl.cn
qb65bz.coolcl.cn
sn21sy.coolcl.cn
dg77lw.coolcl.cn
hm44qj.coolcl.cn
kt92dm.coolcl.cn
bp28hz.coolcl.cn
zf53gx.coolcl.cn
xv79kr.coolcl.cn
nr34mc.coolcl.cn
dj61py.coolcl.cn
fw96tz.coolcl.cn
sh22hg.coolcl.cn
bl58dx.coolcl.cn
vq74jk.coolcl.cn
mj39vr.coolcl.cn
zs64bz.coolcl.cn
np91sy.coolcl.cn
lc26lw.coolcl.cn
qb52qj.coolcl.cn
sn78dm.coolcl.cn
dg35hz.coolcl.cn
hm69gx.coolcl.cn
kt23kr.coolcl.cn
bp57mc.coolcl.cn
zf72py.coolcl.cn
xv38tz.coolcl.cn
nr64hg.coolcl.cn
dj99dx.coolcl.cn
fw25jk.coolcl.cn
sh51vr.coolcl.cn
bl76bz.coolcl.cn
vq32sy.coolcl.cn
mj67lw.coolcl.cn
zs93qj.coolcl.cn
np29dm.coolcl.cn
lc54hz.coolcl.cn
qb79gx.coolcl.cn
sn35kr.coolcl.cn
dg61mc.coolcl.cn
hm97py.coolcl.cn
kt24tz.coolcl.cn
bp50hg.coolcl.cn
zf75dx.coolcl.cn
xv31jk.coolcl.cn
nr66vr.coolcl.cn
dj92bz.coolcl.cn
fw27sy.coolcl.cn
sh53lw.coolcl.cn
bl78qj.coolcl.cn
vq34dm.coolcl.cn
mj60hz.coolcl.cn
zs95gx.coolcl.cn
np21kr.coolcl.cn
lc56mc.coolcl.cn
qb72py.coolcl.cn
sn37tz.coolcl.cn
dg63hg.coolcl.cn
hm99dx.coolcl.cn
book.coolcl.cn/article/B2c3D4e5F6.html
bbs.coolcl.cn/article/A1b2C3d4E5.html
mp.coolcl.cn/article/A2b5C7d1E9.html
baike.coolcl.cn/article/A3b6C8d2E0.html
baike.coolcl.cn/blog/P8q1R3s7T5.html
m.coolcl.cn/blog/Q9r2S4t8U6.html
wap.coolcl.cn/blog/R0s3T5u9V7.html
book.coolcl.cn/article/D5f9G2h7J4.html
bbs.coolcl.cn/article/B7d2F5k1M8.html
mp.coolcl.cn/article/C3g6H9j2N5.html
baike.coolcl.cn/article/E2b8K5p3S7.html
baike.coolcl.cn/blog/A9s2D6f8G1.html
m.coolcl.cn/blog/F4h7J2n5P9.html
wap.coolcl.cn/blog/G1k6M3r8T2.html
book.coolcl.cn/blog/H5p9S2v7W4.html
bbs.coolcl.cn/blog/J7r2T5x1Z8.html
mp.coolcl.cn/article/K3v6W9b2C5.html
baike.coolcl.cn/article/L2b8D5f3G7.html
m.coolcl.cn/article/M9f2H6j8K1.html
wap.coolcl.cn/article/N4h7J2m5R9.html
book.coolcl.cn/article/P1m6R3s8T2.html
bbs.coolcl.cn/article/Q5s9T2v7X4.html
mp.coolcl.cn/article/R7v2X5z1B8.html
baike.coolcl.cn/article/S3z6B9c2D5.html
baike.coolcl.cn/blog/T2c8D5g3H7.html
m.coolcl.cn/blog/U9g2H6k8J1.html
wap.coolcl.cn/blog/V4k7J2p5M9.html
book.coolcl.cn/blog/W1p6M3r8S2.html
bbs.coolcl.cn/blog/X5r9S2t7V4.html
mp.coolcl.cn/blog/Y7t2V5w1Z8.html
baike.coolcl.cn/article/Z3w6B9d2F5.html
m.coolcl.cn/article/A2d8F5h3J7.html
wap.coolcl.cn/article/B9h2J6m8K1.html
book.coolcl.cn/article/C4m7K2p5R9.html
bbs.coolcl.cn/article/D1p6R3s8T2.html
mp.coolcl.cn/article/E5s9T2v7W4.html
baike.coolcl.cn/article/F7v2W5x1Y8.html
baike.coolcl.cn/blog/G3x6Y9z2B5.html
m.coolcl.cn/blog/H2z8B5c3D7.html
wap.coolcl.cn/blog/J9c2D6g8F1.html
book.coolcl.cn/blog/K4g7F2j5H9.html
bbs.coolcl.cn/blog/L1j6H3m8K2.html
mp.coolcl.cn/blog/M5m9K2p7R4.html
baike.coolcl.cn/article/N7p2R5s1T8.html
m.coolcl.cn/article/P3s6T9v2W5.html
wap.coolcl.cn/article/Q2v8W5x3Y7.html
book.coolcl.cn/article/R9x2Y6z8B1.html
bbs.coolcl.cn/article/S4z7B2c5D9.html
mp.coolcl.cn/article/T1c6D3g8F2.html
baike.coolcl.cn/article/U5g9F2j7H4.html
baike.coolcl.cn/blog/V7j2H5m1K8.html
m.coolcl.cn/blog/W3m6K9p2R5.html
wap.coolcl.cn/blog/X2p8R5s3T7.html
book.coolcl.cn/blog/Y9s2T6v8W1.html
bbs.coolcl.cn/blog/Z4v7W2x5Y9.html
mp.coolcl.cn/blog/A1x6Y3z8B2.html
baike.coolcl.cn/blog/B5z9B2c7D4.html
m.coolcl.cn/article/C7c2D5g1F8.html
wap.coolcl.cn/article/D3g6F9j2H5.html
book.coolcl.cn/article/E2j8H5m3K7.html
bbs.coolcl.cn/article/F9m2K6p8R1.html
mp.coolcl.cn/article/G4p7R2s5T9.html
baike.coolcl.cn/article/H1s6T3v8W2.html
baike.coolcl.cn/article/J5v9W2x7Y4.html
m.coolcl.cn/article/K7x2Y5z1B8.html
wap.coolcl.cn/article/L3z6B9c2D5.html
book.coolcl.cn/article/M2c8D5g3H7.html
bbs.coolcl.cn/article/N9g2H6k8J1.html
mp.coolcl.cn/article/P4k7J2p5M9.html
baike.coolcl.cn/article/Q1p6M3r8S2.html
m.coolcl.cn/article/R5r9S2t7V4.html
wap.coolcl.cn/article/S7t2V5w1Z8.html
book.coolcl.cn/article/T3w6B9d2F5.html
bbs.coolcl.cn/article/U2d8F5h3J7.html
mp.coolcl.cn/article/V9h2J6m8K1.html
baike.coolcl.cn/article/W4m7K2p5R9.html
baike.coolcl.cn/article/X1p6R3s8T2.html
m.coolcl.cn/article/Y5s9T2v7W4.html
wap.coolcl.cn/article/Z7v2W5x1Y8.html
book.coolcl.cn/article/A3x6Y9z2B5.html
bbs.coolcl.cn/article/B2z8B5c3D7.html
mp.coolcl.cn/article/C9c2D6g8F1.html
baike.coolcl.cn/article/D4g7F2j5H9.html
m.coolcl.cn/article/E1j6H3m8K2.html
wap.coolcl.cn/article/F5m9K2p7R4.html
book.coolcl.cn/article/G7p2R5s1T8.html
bbs.coolcl.cn/article/H3s6T9v2W5.html
mp.coolcl.cn/article/J2v8W5x3Y7.html
baike.coolcl.cn/article/K9x2Y6z8B1.html
baike.coolcl.cn/article/L4z7B2c5D9.html
m.coolcl.cn/article/M1c6D3g8F2.html
wap.coolcl.cn/article/N5g9F2j7H4.html
book.coolcl.cn/article/P7j2H5m1K8.html
bbs.coolcl.cn/article/Q3m6K9p2R5.html
mp.coolcl.cn/article/R2p8R5s3T7.html
baike.coolcl.cn/article/S9s2T6v8W1.html
m.coolcl.cn/article/T4v7W2x5Y9.html
wap.coolcl.cn/article/U1x6Y3z8B2.html

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 1:02:40

MuleSoft+LLM企业级AI编排:实时数据编织与可治理工作流

1. 项目概述:当企业级集成平台遇上大语言模型,不是拼接,而是重定义工作流“AI Orchestration in Action: How MuleSoft and LLMs Fuel the Future of Enterprise AI”——这个标题里藏着一个正在发生的、静默却剧烈的范式转移。它说的不是“用…

作者头像 李华
网站建设 2026/6/26 0:59:52

工业级机器学习加速实践:从数据到API的72分钟落地指南

1. 这不是一堂“机器学习入门课”,而是一份工业级创新加速器的操作手册“Accelerate innovation with machine learning”——这个标题里没有“教程”“入门”“速成”这类轻飘飘的词,它用的是“accelerate”(加速)和“innovation…

作者头像 李华
网站建设 2026/6/26 0:54:06

企业级应用SQL注入漏洞深度剖析:从原理到实战复现

1. 项目概述:一次典型的企业级应用漏洞深度剖析最近在梳理一些主流企业管理系统的历史安全问题时,用友NC-Cloud系统的一个老漏洞——queryPsnInfo接口的SQL注入漏洞,引起了我的注意。这个漏洞本身的技术原理并不复杂,但它所暴露的…

作者头像 李华
网站建设 2026/6/26 0:53:35

FIFA 23 Live Editor:重新定义你的足球经理生涯体验

FIFA 23 Live Editor:重新定义你的足球经理生涯体验 【免费下载链接】FIFA-23-Live-Editor FIFA 23 Live Editor 项目地址: https://gitcode.com/gh_mirrors/fi/FIFA-23-Live-Editor 还在为FIFA 23生涯模式中的种种限制感到束手束脚吗?想要打造一…

作者头像 李华
网站建设 2026/6/26 0:37:29

Cat2Bug-Platform:团队效能场景下的轻量实践与价值解读

市面上 BUG 平台很多,真正适合团队落地的却不多现在做测试协作,大家都会遇到同一个问题:BUG 分散在聊天记录里,缺陷流转靠口头,测试用例和报告各管一摊,最后不是人找不到问题,就是问题找不到人。…

作者头像 李华
网站建设 2026/6/26 0:20:02

NLP新闻结构化解析与轻量级知识图谱构建实践

1. 项目概述:这不是一个新闻阅读器,而是一套面向NLP从业者的“新闻解剖工作台”“NLP News Cypher | 01.19.20”这个标题乍看像某期 newsletter 的编号,但实际它代表的是一次有明确工程意图的技术实践——用自然语言处理技术,对当…

作者头像 李华