“一百万行 Python 代码对任何人都足够了”!( 二 )

作者 | Jake Edge 译者 | Kolen 编程语言通常对其操作过程的各个方面都有或明或暗的限制 。 诸如标识符的最大长度或变量可以存储的值的范围之类的事情 , 这些是相当明显的例子 , 但是还有其他一些例子 , 其中许多是语言设计者未指明的 , 并且出现在各种实际应用语言编程的过程中 。 这种模棱两可的限制可能会带来严重后果 , 因此在Python中确定各种各样的限制是“Python-dev”邮件列表(译者注:“Python-dev”是Python开发者社区的一个子栏目)上正在持续进行的讨论目标 。 Mark Shannon发表了一项“对Python程序的各个方面(比如每个模块的代码行)实行一百万行限制”的提案 。 一百万看起来像是一个任意的数字(事实上也是如此) , 但他提出这一想法还是考虑到这个数字比较容易让人记住 , 因此可以使得程序员在对编程语言添加的限制而感到疑惑时无需查阅参考 。 尽管有如此提案的想法 , Python虚拟机存储的某些值(例如行号)是32位值 , 这显然固化了自身的限制 , 但是这样的值可能会浪费绝大多数一直没有关闭的Python程序的存储空间 。 除此之外 , 溢出这些32位值可能会导致安全性和其他类型问题的出现 。 正如Shannon指出的 , 21位可以容纳的范围是从-1000000到1000000 , 其中三个值可以打包成一个64位字 。 “内存访问通常是现代CPU性能的一个限制因素 。 在ALU使用量适度增加(用于移位和屏蔽)的情况下 , 更好地打包数据结构可以增强局部性并减少内存[带宽

推荐阅读