
透過效能分析找出瓶頸
|
23
就
-0.82+0j
(虛線帶有菱形標記)而言,可以看到,在第 9 次迭代之後,絕對值已經超
過
+2
,所以我們停止迭代。
計算完整的 Julia Set
在這一節裡,我們分解產生 Julia set 的程式碼。貫穿本章,我們會以幾種方式分析它。
如範例 2-1 所示,在模組一開頭,匯入(import)我們的第一個效能分析方法會用到的
time
模組,並且定義一些座標常數。
範例
2-1
為座標空間定義全域常數
"""Julia set generator without optional PIL-based image drawing"""
import time
# 要調查的複數空間區域
x1, x2, y1, y2 = -1.8, 1.8, -1.8, 1.8
c_real, c_imag = -0.62772, -.42193
為了產生圖形,我們建立兩個輸入資料的串列。第 1 個是
zs
(複數的 z 座標),第 2 個
是
cs
(複數的初始條件)。兩個串列都不會改變,而且我們可以將
cs
最佳化成單一的常
數
c
值。然而,建造兩個輸入串列的基本理由是:在本章稍後分析 RAM 的使用量時,
會有看起來比較適用的資料可以分析。
為了建立
zs
與
cs
串列,我們必須知道每個
z
值的座標。在範例 2-2 中,我們使用
xcoord
與
ycoord
以及指定的
x_step
與
y_step
建立這些座標。這裡有點囉嗦,但在將程
式碼移植到其他工具(例如,
numpy
)及其他 Python 環境時會有用,因為它有助於讓一 ...