报表性能优化方案之报表服务器优化基础讲解
內(nèi)存
JVM堆棧內(nèi)存是決定應(yīng)用服務(wù)器性能的關(guān)鍵指標(biāo),一般服務(wù)器默認(rèn)的內(nèi)存配置都比較小,在較大型的應(yīng)用項目中,這點內(nèi)存是不夠的,因此需要進行查看與修改Web服務(wù)器內(nèi)存大小,接下來就介紹服務(wù)器內(nèi)存查看的方法以及不同服務(wù)器內(nèi)存的修改方式。
各應(yīng)用服務(wù)器的內(nèi)存配置方法不盡相同,如下列出了常用服務(wù)器的JVM參數(shù)(-Xms,-Xmx)配置方法。
JVM參數(shù)定義:
-?Xms:?初始化內(nèi)存大小
-?Xmx:?可以使用的最大內(nèi)存
以下示例工具:報表開發(fā)工具FineReport
服務(wù)器內(nèi)存的查看
如果您想要查看應(yīng)用服務(wù)器的內(nèi)存配置情況,可以啟動Web服務(wù)器,進入平臺系統(tǒng),URL地址為:http://localhost:8080/WebReport/ReportServer?op=fr_platform,選擇管理系統(tǒng)>系統(tǒng)監(jiān)控>系統(tǒng)狀態(tài)>內(nèi)存使用情況,即可查看到當(dāng)前web服務(wù)器的內(nèi)存使用情況,如下圖:
?
?
注:如果用戶購買了數(shù)據(jù)決策系統(tǒng),那么URL地址可以輸入
http://localhost:8075/WebReport/ReportServer?op=fs
其中:
空閑內(nèi)存:204M是指可用剩余內(nèi)存為:204M。
所有內(nèi)存:247M是指當(dāng)前調(diào)用的內(nèi)存為:247M。
最大內(nèi)存:494M是指可調(diào)用的最大內(nèi)存為:494M。
FineReport內(nèi)存機制
1.?描述
在使用報表的過程中有時候會遇到內(nèi)存溢出的問題,下面簡單介紹我們報表的內(nèi)存機制以及怎樣釋放內(nèi)存。
2.?內(nèi)存機制
2.1?Java內(nèi)存回收機制
Java的內(nèi)存垃圾回收(GC)機制是從程序的主要運行對象開始檢查引用鏈,當(dāng)遍歷一遍后發(fā)現(xiàn)沒有被引用的孤立對象就作為垃圾回收。GC為了能夠正確釋放對象,必須監(jiān)控每一個對象的運行狀態(tài)。包括對象的申請、引用、被引用、賦值等,GC都需要進行監(jiān)控。
在Java中,這些無用的對象都由GC負(fù)責(zé)回收,同時java提供了函數(shù)可以訪問GC,?如運行GC的函數(shù)System.gc(),但是根據(jù)Java語言規(guī)范定義,該函數(shù)不保證JVM的垃圾收集器一定會執(zhí)行。因為不同的JVM實現(xiàn)者可能使用不同的算法管理GC。通常GC的線程的優(yōu)先級別較低。JVM調(diào)用GC的策略也有很多種,有的是內(nèi)存使用到達一定程度時,GC才開始工作,也有定時執(zhí)行的,有的是平緩執(zhí)行GC,有的是中斷式執(zhí)行GC。
導(dǎo)致內(nèi)存泄漏主要的原因是,先前申請了內(nèi)存空間而忘記了釋放。如果程序中存在對無用對象的引用,那么這些對象就會駐留內(nèi)存,消耗內(nèi)存,因為無法讓垃圾回收器GC驗證這些對象是否不再需要。如果存在對象的引用,這個對象就被定義為"有效的活動",同時不會被釋放。要確定對象所占內(nèi)存將被回收,我們就要務(wù)必確認(rèn)該對象不再會被使用。
2.2?FineReport中內(nèi)存管理釋放機制說明
FineReport報表后臺采用的是純java語言編寫,?因此其內(nèi)存釋放機制與上述保持一致,當(dāng)客戶端與服務(wù)器端交互結(jié)束(如關(guān)閉瀏覽器頁面,?打印結(jié)束等),?服務(wù)器端會將之前客戶端操作消耗的內(nèi)存釋放掉,?即置為可被回收狀態(tài),?等候jvm調(diào)用gc
3.?FineReport中的手動GC方法
FR在1G內(nèi)存下的臨界點應(yīng)該在130w行*5列左右,?對于某些集成環(huán)境來說,?有可能是需要做某些操作后,?將FR占用的內(nèi)存釋放掉,?FR里面也提供了響應(yīng)的接口,?具體使用方法如下所示:
在一個模板中添加一個按鈕,?給按鈕加上點擊事件,?或者直接在js中調(diào)用,?內(nèi)容如下:
$.ajax({ url : FR.servletURL, data : { op : 'fr_utils', cmd : 'gs_gc' }, async : false, })
轉(zhuǎn)載于:https://www.cnblogs.com/laoA188/p/4794523.html
總結(jié)
以上是生活随笔為你收集整理的报表性能优化方案之报表服务器优化基础讲解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: cocos2d-x注意事项(十)Lua发
- 下一篇: R语言 股价分析