1、迴圈執行次數相同,大迴圈放在外面還是小迴圈放在外層效率高呢?
int end1 = 10;
int end2 = 100;
int end3 = 1000000;
long starttime = system.nanotime();//開始時間
for(int i=1;i<=end3;i++)
}} long endtime = system.nanotime();//執行結束時間
int end1 = 10;
int end2 = 100;
int end3 = 1000000;
long starttime = system.nanotime();//開始時間
for(int i=1;i<=end1;i++)
}} long endtime = system.nanotime();//執行結束時間
我測試這兩個**時,是第乙個程式執行時間稍微短。。。1000000000 4526307945ns。第二個是:1000000000 5150243082ns。不是應該把迴圈次數多的放在內層,減少cpu迴圈內外層的切換時間,然後會更快麼。
2、計算放在迴圈內的重複使用
int count=0;
long starttime = system.nanotime();//開始時間
//int end = getendtime();
for(int i=1;i<=getendtime();i++)
long endtime = system.nanotime();//執行結束時間
system.out.println(count);
system.out.println(endtime-starttime+"ns");
執行結果:
1000
25881ns
int count=0;
long starttime = system.nanotime();//開始時間
int end = getendtime();
for(int i=1;i<=end;i++)
long endtime = system.nanotime();//執行結束時間
system.out.println(count);
system.out.println(endtime-starttime+"ns");
執行結果:
1000
8925ns
第一段**重複進行多餘的計算。
3、區域性變數與成員變數的訪問
區域性變數是在棧上分配的,而類的例項變數在堆中分配的,對區域性變數的訪問速度快於對例項變數的訪問速度。所以當迴圈多次訪問某例項變數時,可先將例項變數賦值給區域性變數。然後對區域性變數訪問。
public class main {
private int end = 1000;
public void fun1()
{ for(int i=0;i
C 的一些細節
1.c 中,將負數賦值給unsigned是完全合法的。例如,將 1賦值給unsigned char,那麼結果是255.2.c 中,double的精度和計算速度都要超過float,long double則需要承擔額外的執行代價。3.std ou t hi d endl 等價於std out hi 4....
SDWebImage的一些細節
清空快取 cleandisk 清除過期快取,計算當前快取的大小,和設定的最大快取數量比較,如果超出那麼會繼續刪除 按照檔案穿件的先後順序 cleardisk 直接刪除重新建立 7天 sdwebimagemanager sharedmanager imagecache cleandisk 取消當前所有...
C 一些細節
include include pthread.h using namespace std static pthread mutex t mutex class single class single public static single instance static single getin...