下面是一個代碼片斷,它返回一個類的對象。現在該對象基本上與循環中的某個參數進行比較。java +提高性能和可伸縮性
我擔心如果有成千上萬個對象循環,那麼性能和可伸縮性會成爲問題。請建議如何提高性能部分
public Widget get(String name,int major,int minor,boolean exact) {
Widget widgetToReturn = null;
if(exact) {
Widget w = new Widget(name, major, minor);
// for loop using JDK 1.5 version
for(Widget wid : set) {
if((w.getName().equals(wid.getName())) && (wid.getVersion()).equals(w.getVersion())) {
widgetToReturn = w;
break;
}
}
} else {
Widget w = new Widget(name, major, minor);
WidgetVersion widgetVersion = new WidgetVersion(major, minor);
// for loop using JDK 1.5 version
for(Widget wid : set) {
WidgetVersion wv = wid.getVersion();
if((w.getName().equals(wid.getName())) && major == wv.getMajor() && WidgetVersion.isCompatibleAndNewer(wv, widgetVersion)) {
widgetToReturn = wid;
} else if((w.getName().equals(wid.getName())) && wv.equals(widgetVersion.getMajor(), widgetVersion.getMinor())) {
widgetToReturn = w;
}
}
}
return widgetToReturn;
}
記住最重要的優化規則 - 在你做之前你必須有性能要求,你必須沒有滿足這些要求 - 否則使用最可讀的代碼!你需要改進多少才能滿足要求? – 2011-09-19 20:01:41