《CPython Internals》阅读笔记:p353-p355

news/2025/1/26 14:38:33/文章来源:https://www.cnblogs.com/codists/p/18690509

《CPython Internals》学习第 18天,p353-p355 总结,总计 3 页。

一、技术总结

1.benchmark(基准测试)

Python中常用的 benchmark 有 timeit, pyperformance。

(1)timeit

$ ./python -m timeit -c "x=1; x+=1; x**x"

1000000 loops, best of 5: 258 nsec per loop

我觉得这是一个很糟糕的示例,没有看出这个示例有什么意义。对于timeit 模块,我更希望放在整个项目中去看,看看它在实际项目中的应用。很遗憾,截止到目前,在我所看过的书中,关于 timeit 的使用都是测试一些代码片段。

(2)关于timeit的一点说明

作者在第356也说“You might notice a minor (1-5%) improvement in performance.”——我觉得作者在这里的叙述有点本末倒置,timeit顶多算是验证结果的一种手段,其实应该把重点放在“为什么性能提升了1-5%”。

2.profiler

Python 中常用的 profiler 有 cProfiler 或者 dtrace。

二、英语总结(生词:2)

1.detrimental

(1)detriment: de-("away") + terere("to rub(摩擦), wear(to become weaker)")

u. harm or damage. Detriment refects the sense of sth being gradually worn away(使......磨损),leading to harm or less。

(2)detrimental

adj. causing harm or damage.

When making changes to CPython, you need to verify that your changes do not have a significant detrimental impact on performance(《CPython Internals》第353页)。

2.median

(1)median

c. the value that is the middle one in a set of values arranged in order of size(中位数,中值)。示例:1.假设有一组数 1, 3, 3, 6, 7, 8, 9, 那么 median 是6。2.假设有一组数1, 2, 3, 4, 5, 6, 8, 9,那么 median 是(4+5)/2=4.5。

A benchmark will produce an average/median runtime of a fixed code snippet so that you can compare multiple versions of Python runtime(《CPython Internals》第353页。)

关于英语的注解同步更新汇总到 https://github.com/codists/English-In-CS-Books 仓库。

三、其它

今天没有什么想说的。

四、参考资料

1. 编程

(1) Anthony Shaw,《CPython Internals》:https://book.douban.com/subject/35405785/

2. 英语

(1) Etymology Dictionary:https://www.etymonline.com

(2) Cambridge Dictionary:https://dictionary.cambridge.org

欢迎搜索及关注:编程人(a_codists)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/874915.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决qt 父级样式传递子控件导致QOpenGLWidget::paintGL绘制不生效(无效),被父级背景反复填充

当父级(当前控件的所有父级任意一个)设置background后,设置background下的子控件都会传递这个qss属性,导致OpenGL的paintGL绘制不生效 在代码中手动设置子控件任意颜色即可:ui->widget->setPalette(ui->widget->palette());手动调用一下setPalette后,paintGL绘制…

PKUWC 2025 CCFWC 2025 游记

跑步波特麦瑟姆,向你致意。省流:喜提四等奖 + 铁牌。 1.13 抵达绍兴! 酒店环境非常好,我算是棒球伪球迷,看见房间挂画是棒球还是比较激动的。 可惜没办法打棒球。去跑步了。 1.14 - PKUWC Day 1 上午报到 + 开幕式。 哇,呆呆鸟!帅帅帅!三个 HEZ 也太酷了吧! 哇,思路打…

【跟着阿舜学音乐-笔记】2.3架子鼓常用节奏型

2.3架子鼓常用节奏型 底鼓,一般音乐平稳进行时,强拍上都要有底鼓作为支撑,而次强拍上的使用则较为多样。 (关于加花时的切分节奏:底鼓不从强拍出现,并且出现于节拍切分处。切分节奏对织体影响较大,运用需节制)军鼓,其中频与底鼓的低频产生呼应形成主框架,一般在平稳进…

石头剪刀布

石头剪刀布题目 对于一个包含字符 \(\{R,P,S\}\) 的字符串 \(s\),满足每相邻两个字符都不同且 \(s_1=s_n=R\)。 你可以做两种操作:找出第一个 \(RS\) 或 \(SR\) 将其替换为 \(R\)。 找出第一个 \(SP\) 或 \(PS\) 将其替换为 \(S\)。 若无法进行任意一个操作则结束,否则继续执…

新春“码”启 | 0 基础开发微信小游戏,Cocos 游戏引擎 + AI 辅助编程(第1天)

春节期间,老牛同学计划借助 AI 开启一场挑战自我和为小朋友开发微信小游戏的系列计划,0 基础开始了第1天的体验。目标是采用 Cocos 游戏引擎框架,借助 AI 辅助编程,最终完成微信小游戏研发。目前已对相关概念有了初步了解,后续将持续探索……好羡慕小朋友们,已经放了快两…

grammarly 使用问题

1 Word 使用时,有时下面的图标不出现,无法使用 2 3

那是我们的影子

那是我们的影子 题目描述 由 $3 \times n$ 个单元格构成的 $3$ 行 $n$ 列异形数独规则如下:每一个单元格都需要填入 $1$ 到 $9$ 之间的整数; 任意一个 $3 \times 3$ 的子矩阵中都不包含重复的数字;现在,牛可乐已经填入了一些数字,请你在此基础上帮助他计算,这个异形数独一…

NPS如何安装Windows版的客户端

Windows 首先下载Windows版的客户端: github下载地址:https://github.com/yisier/nps/releases 54 雨云ROS下载地址:https://cn-sy1.rains3.com/rainyun-assets/Pic/2023/11/windows_amd64_client.tar.gz 51我在需要运行NPS客户端的Windows设备的C盘根目录下建立一个名字叫【…