減少冗餘計算的優化對比

2021-06-01 22:52:57 字數 984 閱讀 4454

優化前的**如下所示,這是乙個旋轉點的函式,其中sin(angle),cos(angle)都各運算了兩次,因此存在冗餘計算。

通過2次優化 效率有 2.2秒 提公升到 1.7秒,再提公升到1.5秒。冗餘計算優化還是非常有效果的

using system;

using system.drawing;

namespace speed

timespan ts = datetime.now - dt;

console.writeline("rotatept_1 cost time ", ts.tostring());

dt = datetime.now;

for (i = 0; i < 10000000; i++)

ts = datetime.now - dt;

console.writeline("rotatept_2 cost time ", ts.tostring());

dt = datetime.now;

for (i = 0; i < 10000000; i++)

ts = datetime.now - dt;

console.writeline("rotatept_3 cost time ", ts.tostring());

console.read();

}static point rotatept_1(double angle, point pt)

static point rotatept_2(double angle, point pt)

static point rotatept_3(double angle, point pt)

}}

rotatept_1 cost time 00:00:02.2381280

rotatept_2 cost time 00:00:01.7471000

rotatept_3 cost time 00:00:01.5130866

專欄 演算法入門 通過簡單的判斷,減少演算法的冗餘

例 求斜邊小於等於n的所有的直角三角形 邊長的組合。方法一 最笨最直接的做法 3個邊長分別從 1到n 進行判斷。方法二 確定一斜邊和一直角邊。直角邊必定小於斜邊,從而減少一部分冗餘。方法三 確定一斜邊和一直角邊,同時確定另一直角邊的範圍 必定小於等於 sqrt 斜邊方 直角邊平方 的整數部分。該邊從...

以減少列舉變數的方式優化演算法

通過5x 3y 1 3z 100和x y z 100組成的方程組,我們可以得到 y 100 7x 4 z 100 x 100 7x 4 此時方程組中的y和z都能夠用x來表示,所以我們就能將列舉變數的個數減少到1個,這對於演算法時間複雜度的降低是很有幫助的。int main 列舉法基本思想 列舉法又稱...

基於減少計算量的MFCC提取

1.傳統的mfcc 提取流程圖如下 在特徵提取過程的模組,如預加重,加窗,框架,fft 過濾器,對數能量,余弦變換中都含有大量的乘法運算,其中,在 fft耗費了大量的計算量。太多的乘法導致系統的能力要求高,能源消耗大,穩定性較低,應用範圍窄。所以希望在不改變結果的條件下,對mfcc提取過程進行優化。...