$ python -m timeit "i = 5" "i *= i"
10000000 loops, best of 3: 0.0938 usec per loop
$ python -m timeit "is_there_anything_to_be_gained_from_short_variable_names = 5" "is_there_anything_to_be_gained_from_short_variable_names *= is_there_anything_to_be_gained_from_short_variable_names"
10000000 loops, best of 3: 0.0927 usec per loop
“like python”有一个问题,因为不是所有的解释语言都是相同的。在
对于纯解释的语言,它比像Python这样有预编译步骤的语言有更大的影响。严格地说,这不是语言差异(可以有一个Javascript引擎进行预编译,另一个没有预编译),但它确实影响了这个问题的答案。在
把“像python一样”扩展到包括每一种解释语言,我会说答案是“是的,对其中一些人来说,至少在某些时候是这样”。下一个问题是,“多少钱”。在
从1997年到1998年初,我一直在研究一些相当复杂的javascript代码,这些代码利用了netscapenavigator4和internetexplorer4的一些新特性。这在当时是一个庞大的javascript文件,当时拨号上网的普及意味着每千字节都以站点速度计算。在
为此,我们使用了一个minimiser脚本。这样做的主要目的是重写变量使其更短(
lastHeight
变为a
,userSel
becmomesb
等等)。在它不仅减少了下载时间,而且使一个更重的功能变得更快。但只有当你是一个整天都在看别的东西的人,这意味着我和另一个同事。在
所以,是的,如果我们把Javascript放在“像python一样”的类别中,那么在以下条件下,Javascript可以起到作用:
但还是没什么区别。在
我们可以假设,其他一些被解释的语言也受到同样微小程度的影响。在
即使在1997年,如果不是巧合地给了我另一个优势,我也不会为此烦恼,而且我肯定不是在研究最小化版本。在
如果你用“像Python这样的语言”来指解释语言,那么是的,它会带来不同,因为解析可能需要更长的时间。我想说差别是不明显的。在
不过,我完全同意吃夜宵,别这样。让你的代码对人类可读。让解析器/编译器处理机器的可读性。在
记住关于优化的规则:
不,不,不,不,不
没有
使用可读的名称,而不是短名称。性能上的差异是绝对可以商榷的。在
具有讽刺意味的是,当在这台电脑上测量长变量名时,每次执行的速度要快~0.001 usec。在
相关问题 更多 >
编程相关推荐