更新時(shí)間:2022-07-12 11:57:12 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1631次
優(yōu)化 Java 代碼需要對(duì)其工作方式進(jìn)行適當(dāng)?shù)姆治觥S袔讉€(gè)因素會(huì)影響性能優(yōu)化,例如垃圾收集、操作系統(tǒng)設(shè)置和虛擬機(jī)。
我建議您從最小內(nèi)存分配開始。然后,您可以根據(jù)程序要求逐漸增加它。您可以通過(guò)向 JVM 添加以下參數(shù)來(lái)指示 JVM 將堆轉(zhuǎn)儲(chǔ)到 OutOfMemoryError 異常中:
-XX:+HeapDumpOnOutOfMemoryError
正確利用可用內(nèi)存是優(yōu)化速度的好方法。
1GB 到 7GB 的堆大小足以開始使用。它應(yīng)該取決于老一代與新一代對(duì)象的比率。
有幾個(gè)Java 性能工具,如 VisualVM、YourKit、Java Mission Control 等,您可以使用它們來(lái)跟蹤您的應(yīng)用程序性能。
NetBeans 分析器也是一個(gè)不錯(cuò)的選擇。NetBeans IDE支持開箱即用的所有 Java 應(yīng)用程序類型 Java SE(包括 JavaFX)、Java ME、Web、EJB 和移動(dòng)應(yīng)用程序的開發(fā)。
下面的代碼可以方便地代替兩個(gè)單獨(dú)的代碼StringBuilder:
StringBuilder x = new StringBuilder ( "a" );
x。附加(參數(shù)。長(zhǎng)度);
x。附加(“b”);
如果(參數(shù)。長(zhǎng)度 == 1);
x。附加(參數(shù)[ 0 ]);
這使得任何修改都很容易,而不會(huì)給 GC 帶來(lái)額外的壓力。
如果我們使用如下代碼:
for(字符串 值:字符串){
// 在這里做一些有用的事情
}
然后每次我們運(yùn)行這段代碼時(shí),都會(huì)創(chuàng)建一個(gè)新的迭代器實(shí)例,它會(huì)消耗我們的大部分內(nèi)存。
相反,建議使用以下代碼:
整數(shù) 大小 = 字符串。大小();
for ( int i = 0 ; i < 大小; i ++ ) {
字符串 值:字符串。得到( i );
// 在這里做一些有用的事情
}
或者,如果您的列表沒(méi)有真正改變,您甚至可以對(duì)它的數(shù)組版本進(jìn)行操作:
對(duì)于(字符串 值:字符串?dāng)?shù)組){
// 在這里做一些有用的事情
}
編寫基于索引的迭代非常有用。
并發(fā)性是能夠彼此并行運(yùn)行多個(gè)程序的能力。
對(duì)于處理多請(qǐng)求 Web 流,建議使用帶有分離實(shí)體的樂(lè)觀鎖定EXTENDEDPersistence Context或.
此外,必須了解關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng) (RDBMS) 的內(nèi)部工作原理和數(shù)據(jù)訪問(wèn)框架,以提高數(shù)據(jù)訪問(wèn)層的性能。
以上就是關(guān)于“5個(gè)Java技能優(yōu)化技巧”的介紹,大家如果想了解更多相關(guān)知識(shí),可以關(guān)注一下動(dòng)力節(jié)點(diǎn)的Java在線學(xué)習(xí),里面的課程內(nèi)容細(xì)致全面,很適合沒(méi)有基礎(chǔ)的小伙伴學(xué)習(xí),希望對(duì)大家能夠有所幫助哦。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話與您溝通安排學(xué)習(xí)