有時你必須決定使用一個Singleton對象(一個真正的單身人士,還是隻是一個事實上的單身人像一個注入的bean),或者每次只使用新的東西。你做什麼取決於對象。單身或不是。如何測量?
如果一個對象需要一分鐘的時間才能創建,並且需要10MB的內存,如果沒有必要,您不想創建多個內存。但是,如果只需要一毫秒和20個字節的內存,誰會在乎你是否在你的整個應用程序中創建了10個字節,並且在我看來,單例的其他複雜性是不值得的。
但我想衡量這一點。我發現了一些使用Instrumentation軟件包查看內存使用情況的選項,但是這似乎相當困難和繁瑣。所以我想知道,是否有一些很好的技巧可以用在單元測試中,例如只是爲了獲得一些有關對象的內存和時間屬性的球場圖?
澄清:在這種情況下單身人士我的意思是:你只創建一個對象。不是一個真正的單身人士,你強制執行,只有一個。
例如,我們使用resteasy來生成REST代理。你可以使用依賴注入代理:
@Bean
@Autowired
public AccountRequestResource accountsServiceClient(JaxRsProxyClientBuilder builder) {
return builder.createProxy(AccountRequestResource.class, accountsServiceBaseUrl);
}
@Autowired
AccountRequestResource accountsServiceClient
或者你可以構建每一個在你需要它的類一個新問題:
AccountRequestResource accountsServiceClient =
builder.createProxy(AccountRequestResource.class, accountsServiceBaseUrl)
我想衡量這幾樣中存在的問題一般情況下(不僅僅是簡單,而是任何類型的注入對象)。
根據一些程序員,單身人士被認爲是反模式... – 2014-09-30 07:12:35