python sys.getsizeof方法在不同版本的python上返回不同的大小

2023-12-05

sys.getsizeof在不同版本的 python 上返回不同大小的 unicode 字符串。

sys.getsizeof(u'Hello World') return 96 on Python 2.7.3并返回72 on Python 2.7.11


sys.getsizeof根据定义为您提供实现细节,并且这些细节都不能保证在版本甚至构建之间保持稳定。

不过 2.7.3 和 2.7.11 之间不太可能发生任何重大变化;您对字符宽度的评论可能解释了这种差异;包括内部存储的NUL终止符在内,共有12个字符Hello World,并且 UCS4 编码比 UCS2 编码需要多 24 个字节来存储它们(但作为交换,它可以处理非BMP人物)。

其他可能改变大小的事情(在其他情况下)是 32 与 64 位构建(所有指针和ssize_ts 在 64 位版本上的大小加倍,也是如此long非 Windows 机器上的 s),Python 2 与 Python 3(Python 3 从公共对象头中删除了单个指针宽度字段),以及str,Python 3.2(使用构建选项指定固定宽度UCS2或UCS4str,与Py2相同unicode)与 Python 3.3+(其中根据序列中最大的序数使用三种不同的固定宽度之一str,所以 ASCII/latin-1str每个字符使用一个字节,即 BMPstr使用两个,一个非 BMPstr使用四个,但也可以缓存替代表示,所以相同str可以根据使用情况以“实际”尺寸增大或缩小)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python sys.getsizeof方法在不同版本的python上返回不同的大小 的相关文章

随机推荐

  • 从 MySQL 数据库在 Google Maps API v3 上绘制多个多边形

    因此 我尝试通过 MySQL 表中的多边形空间数据将多个多边形绘制到谷歌地图上 我有一个 php 脚本 它根据我的表数据输出以下 XML
  • 链接到另一个页面的按钮(特定部分)

    我正在尝试创建一个按钮 将我重定向到另一个页面上的特定部分 我的索引页上有此代码 a href BruinBier class btn Bekijken a 如果我按下上面的按钮 它应该将我重定向到 Bruin bier 部分下的网上商店页
  • 从 C 优雅地调用 C++

    我们用简单的方式开发一些项目C C99 但是 我们有一个库作为源代码 数学库 C 我们需要这个库 所以我想问一下 集成这个源代码的最优雅的方式是什么 尺寸之间的比例C and C is 20 1所以搬到C 不是这个选项 我们应该使用静态库吗
  • Visual Studio 2019 - 仅强制使用 C++11 功能

    我使用 Visual Studio 2019 进行 C 开发 由于代码部署到的遗留系统的限制 我只能使用 C 11 语言功能 特别是 GCC 4 8 5 VS2019中默认的是C 14 这显然是C 11的超集 我看不到仅指定 C 11 的方
  • 仅当字符串中连续时如何删除重复项? [复制]

    这个问题在这里已经有答案了 对于一个字符串 例如 12233322155552 通过删除重复项 我可以得到 1235 但我想保留的是 1232152 仅删除连续的重复项 import re Only repeated numbers ans
  • Redux-form 6.0.0 Field 组件外访问错误

    在 Redux form v5 中 我能够从装饰表单中的任何位置访问 内联 错误 异步验证 如下所示 const fields email inside the decorated form const email this props f
  • AIR 3.5 移动项目设备 ID

    我想知道是否有人知道针对移动设备 iOS 和 Android 将数据存储在全局数据库中的最佳方法 我正在构建一个根据查询写入 检索信息的应用程序 但我需要知道返回的任何记录是否是从该设备发送的 基本上 这个想法是 如果用户提交一些信息 存储
  • 如何向用户显示时间量?

    我想将时间量从毫秒转换为人类可读的字符串 例如 3 600 000应显示为1 00 00 1小时 Java 中是否有现有的库或类可以做到这一点 从 1 5 开始有 java util concurrent TimeUnit 类 像这样使用它
  • Symfony2 Twig 获取子实体的总计数

    存在以下实体 农场 谷仓和动物 一个农场可以有很多谷仓 一个谷仓可以有很多动物 在 TWIG 模板中显示农场时 还应显示动物的数量 做这个的最好方式是什么 我创建了一个 TWIG 扩展 它允许我轻松显示谷仓的数量 public functi
  • urllib、urllib2、urllib3 和 requests 模块之间有什么区别?

    在Python中 它们之间有什么区别urllib urllib2 urllib3 and requests模块 为什么是三个 他们似乎做着同样的事情 我知道已经说过了 但我强烈推荐requestsPython 包 如果您使用过 Python
  • 如何在 Android 中点击图标打开侧边栏?

    我已经实施了Hamburger酒吧与App toolbar他们都工作得很好 以下是快照toolbar and hamburgerbar Hamburger bar 我可以通过滑动打开此栏 但我也想通过单击可绘制图标 右上角图标 将其打开 我
  • 在 Qt 中从字符串中提取参数,包括带引号的区域

    我有一个 Qt5 C 程序 它接收一个包含程序名称和可能的参数的 QString 我需要将这个 QString 分成多个字符串 例如 字符串 tmp myprog param1 param2 2 param3 1 2 3 p 4 应该分为
  • 如何在文件名中使用索引

    这可能是一个微不足道的问题 我不是一个专业的程序员 我而是一个正在使用 C 做一些数值实验的数学家 我想要我的输出 针对不同的参数值将实验写入不同的文件中 MWE 应该做这样的事情 创建一个由 i 索引的文件指针 打开名为 file i 的
  • 如何在oracle中提取或更新xml属性值

    表名称 conn details 我有这个 xml 它存储在 Oracle 的 CLOB 列 conn param 中
  • 从 Windows 服务调用时 System.Diagnostics.Process.Start() 无法启动进程

    我正在尝试从 NET Windows 服务启动外部进程 过去我用过Process Start 采用可执行路径和命令行字符串的重载 这有效 但现在我想启动该过程并让它在特定用户的上下文中运行 所以我称这个版本为Start public sta
  • 更改数据框中的一些数值

    我有一个数据框 其中两个变量 纬度和经度 的值不正确 数据框中的错误值列为 999 00 正确值应分别为 42 68 和 72 47 我想要一种简单的方法来使用 dplyr 替换这些值 但我的尝试 见下文 没有成功 下面提供的错误 df L
  • 使用 MIP SDK 解密加密的 Office 365 电子邮件

    我正在关注论坛主题 Azure 信息保护 如何解密来自 EWS API 的 EML 我有兴趣了解解密加密 Office 365 电子邮件的步骤 您能否评论以下内容 正如您提到的 必须将电子邮件转换为 msg 文件 所以我的问题是 在将电子邮
  • If-Else-If 链和多个 If 哪个更好

    假设我有一个随机数 哪个更有效率 if num 1 else if num 2 else if num 3 else if num 4 else if num 5 else or if num 1 if num 2 if num 3 if
  • 如何删除字符串句子中的空格

    我正在尝试编写一段代码来删除所有前导 尾随和中间的句子空格 但只保留单词之间的一个空格 例如 如果输入是 This is my string 输出应该是 This is my string 到目前为止我已经想出了这个 include
  • python sys.getsizeof方法在不同版本的python上返回不同的大小

    sys getsizeof在不同版本的 python 上返回不同大小的 unicode 字符串 sys getsizeof u Hello World return 96 on Python 2 7 3并返回72 on Python 2 7