Applet中使用ResourceBundle.getBundle為什麼會影響效能?

expeditioner發表於2005-12-12
我在Applet中使用ResourceBundle rb=ResourceBundle.getBundle("MyPropertiesFile")...
來讀取檔案中的設定,問題是為什麼執行此程式碼後再執行
Context context = new InitialContext(myProperties);會需要1分鐘左右的時間才能執行結束?
而當在本地執行時則正常,並且如果不使用ResourceBundle.getBundle(...)方法,直接在程式碼中
使用myProperties.setProperty(...)方法逐個設定myProperties,在網路和本地都可以正常執行.
我感覺好象ResourceBundle.getBundle方法執行完畢後需要進行什麼處理.所以影響了
new InitialContext(myProperties).為了驗證一下,我只使用ResourceBundle.getBundle(...)
這一行語句執行一次,然後再使用myProperties.setProperty(...)進行設定,這樣也會影響速度,
也就是說只要執行了ResourceBundle.getBundle方法,就一定會影響
new InitialContext(myProperties)的速度。
請問大家這是什麼原因?如何解決?
程式碼如下:

Properties myProperties = new Properties();
//透過屬性檔案設定//
String key = null;
String value = null;
ResourceBundle rb = ResourceBundle.getBundle("MyPropertiesFile");//慢的原因在此行
Enumeration enum = rb.getKeys();
while(enum.hasMoreElements()) {
	key = enum.nextElement().toString();
	value = rb.getString(key);
	myProperties.setProperty(key,value);
}
//透過屬性檔案設定結束//
//不透過屬性檔案直接設定//
//用這種方式設定則不會影響new InitialContext(myProperties)的執行速度
//myProperties.setProperty(Context.INITIAL_CONTEXT_FACTORY,"org.activemq.jndi.ActiveMQInitialContextFactory");
//myProperties.setProperty(Context.PROVIDER_URL,"tcp://192.168.1.9:61616");
//不透過屬性檔案直接設定結束//
Context context = new InitialContext(myProperties);//此行需要執行1分鐘左右
<p class="indent">

相關文章