
10
|
第一章
個非常重要的元件︰開發者。原生 Python 在效能上可能欠缺的東西會立刻藉由開發速
度獲得補償。再者,貫穿全書,我們將介紹一些模組與設計哲學,相對輕鬆地幫忙緩解
這裡所描述的諸多問題。將這兩個面向結合起來,我們會盡量保留 Python 以加快開發
速度為導向的思考模式,同時也會去除一些 Python 在效能表現方面的限制。
理想化計算 vs. Python 虛擬機器
為了更深入理解高效能編程的元件,讓我們看一段簡單的程式碼範例,該範例檢查某個
數字是否為質數︰
import math
def check_prime(number):
sqrt_number = math.sqrt(number)
number_float = float(number)
for i in xrange(2, int(sqrt_number)+1):
if (number_float / i).is_integer():
return False
return True
print "check_prime(10000000) = ", check_prime(10000000) # False
print "check_prime(10000019) = ", check_prime(10000019) # True
使用我們的抽象計算模型來分析這段程式碼,然後跟 Python 執行這段程式碼時會發生
的事情做一下比較。就和任何抽象化一樣,我們會忽略理想化電腦與 Python 如何執行
這段程式碼當中的許多細微之處。不過 ...