2011-06-27 19 views
3

目前我正在進行Android項目。我有一個懷疑regrading java級別DNS緩存。通過搜索,我發現通過調用下面提到的函數可以實現它。Java級DNS緩存的目的是什麼?

System.setProperty("networkaddress.cache.ttl", "0"); 
System.setProperty("networkaddress.cache.negative.ttl", "0"); 

基於此,它緩存名稱查找數據或不查詢數據。我想知道這個屬性的目的或影響。

回答

3

目的是減少DNS請求。這導致更快的下載,因爲主機名的IP已經在緩存中。

這是直接影響標準網絡庫的Java系統屬性。它允許您調整Java級別的DNS緩存。因爲所有的緩存,緩存有時並不需要任何效果,例如當某些DNS條目發生變化時,緩存得到更新。

我認爲僅用於測試目的的值爲0(無緩存)或-1(永久緩存)。

0

另外我不認爲你可以像上面那樣設置屬性。在JVM上,您需要使用

java.security.Security.setProperty(「networkaddress.cache.ttl」,「10」); (不確定關於Android)