1
我做了一些優化,並發現這一點:爲什麼for循環初始化中的條件比循環內部更快?
for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 ; y++)
{
if (((x * x)^(y * y)) != 1)
{
continue;
}
}
}
時間超過兩倍的時間更多,因爲這跑:
for (int x = -1; x < 2; x++)
{
for (int y = -1; y < 2 && ((x * x)^(y * y)) == 1; y++)
{
}
}
這到底是怎麼回事?
目的是避免對角(-1,-1; -1,1 ...)和原點(0,0)字段
你是如何測試它的? – Steve
@Steve連續10次運行兩個版本1億次。調試模式 – user3488765
定時測試最好使用發佈版本進行優化,而不是使用調試器,因爲最終是最重要的。 – hatchet