2013-10-07 36 views
-2

我的項目中的相同代碼對於相同的輸入參數具有不同的執行持續時間,它從1ms到30ms不等。如何解決java間歇性滯後?

private void link(Array values, Area area){ 
    values.add(area); 
    Array<Area> children = area.getChildren(); 
    for (int i=0; i<children.size; i++){ 
     Area child = children.get(i); 
     link(values, child); 
    } 
} 

這種滯後是不合適的。我可以修復它們嗎?

+0

執行取決於輸入的大小嗎?它可能是垃圾收集造成的嗎?它可以衡量不精確性嗎? – Thilo

+0

GC是合理的,我必須檢查它,謝謝。輸入是一樣的,測量足夠好 –

+1

'Array'真的是一個數組嗎?如果沒有,你不應該直接訪問它,你應該迭代它:'for(Area child:area.getChildren()){link(values,child); }'如果它是'Iterable',否則你自己使用'Iterator'。 – EJP

回答

-1

垃圾收集導致間歇性滯後。