第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使循環(huán)中的第一次迭代與其余迭代速度相同

使循環(huán)中的第一次迭代與其余迭代速度相同

C#
守著星空守著你 2022-12-24 12:14:24
我正在嘗試對某些東西進行基準測試。我有一個循環(huán)for (int i = 1; i <= 1000; i++){    Thing thing = createThing(i);    DateTime startTime = DateTime.Now;    thing.ComputationallyExpensiveOp();    TimeSpan elapsed = DateTime.Now - startTime;    Console.WriteLine(String.Format("i = " + i + "\ttime = " + elapsed.TotalMilliseconds);}看起來第一次迭代i = 1花費的時間比它應該花費的時間長得多(幾個數(shù)量級),這取決于其他迭代需要多長時間才能完成。第二次迭代似乎也經(jīng)常太長,盡管不那么明顯。我覺得這是因為循環(huán)導致緩存了很多值,這些值在第一次迭代中沒有設置。有沒有一種方法可以使第一次迭代i = 1與其余迭代一樣“快速”(在開銷方面),這樣我真的只是在計時(盡可能最好)thing.ComputationallyExpensiveOp()。目前很明顯,第一次迭代并不能準確反映thing.ComputationallyExpensiveOp().我已經(jīng)嘗試在循環(huán)上方移動“預熱”初始化,但這沒有用。Thing thing = createThing(1);thing.ComputationallyExpensiveOp();for (int i = 1; i <= 1000; i++){    thing = createThing(i);    DateTime startTime = DateTime.Now;    thing.ComputationallyExpensiveOp();    TimeSpan elapsed = DateTime.Now - startTime;    Console.WriteLine(String.Format("i = " + i + "\ttime = " + elapsed.TotalMilliseconds);}
查看完整描述

2 回答

?
三國紛爭

TA貢獻1804條經(jīng)驗 獲得超7個贊

for幾十年來我一直在使用這樣的循環(huán)。而且我從來沒有經(jīng)歷過,這樣的for-loop 是第一次迭代期間延遲的原因。

我對你的實施一無所知Thing,但我很確定你延遲的原因就在那里。不在循環(huán)中。


查看完整回答
反對 回復 2022-12-24
?
臨摹微笑

TA貢獻1982條經(jīng)驗 獲得超2個贊

將整個循環(huán)體復制到 “修復”之外為我


Thing thing = createThing(1);


DateTime startTime = DateTime.Now;

thing.ComputationallyExpensiveOp();

TimeSpan elapsed = DateTime.Now - startTime;


Console.WriteLine(String.Format("i = " + 1 + "\ttime = " + elapsed.TotalMilliseconds);


for (int i = 1; i <= 1000; i++)

{

    thing = createThing(i);


    startTime = DateTime.Now;

    thing.ComputationallyExpensiveOp();

    elapsed = DateTime.Now - startTime;


    Console.WriteLine(String.Format("i = " + i + "\ttime = " + elapsed.TotalMilliseconds);

}

我不太確定原因,但現(xiàn)在第一次迭代的運行時間更符合預期。


查看完整回答
反對 回復 2022-12-24
  • 2 回答
  • 0 關(guān)注
  • 104 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號