《CPython Internals》阅读笔记:p353-p355
《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)
版权声明: 本文为 InfoQ 作者【codists】的原创文章。
原文链接:【http://xie.infoq.cn/article/bff73a0522b85ce09151f93f6】。文章转载请联系作者。
评论