Re: [問題] JAVA String

看板java作者 (godfat 真常)時間17年前 (2009/01/24 17:46), 編輯推噓2(201)
留言3則, 1人參與, 最新討論串6/9 (看更多)
※ 引述《garywine1201 (那是啥)》之銘言: : godfat:我倒覺得必然要觀察 jvm, 畢竟實際上的 mem 是算在他頭上 01/24 05 : godfat:例如如果碰到 jvm memory leak, 我們 app 當然要避開 01/24 05 : 我當然同意這點 : 不過jvm的運作機制底下 : 並不允許程式以任何方式直接處理OS下的記憶體管理 : 而只能處理jvm下的記憶體管理 : 如此一來 : 若想要試著從程式解決jvm記憶體配置的問題 : 就好像你想試著從app解決OS記憶體分割的問題一樣 : 都會因為權限不足 以及 你並不了解這個黑盒子的運作方式而作罷 : 不過幸運的是 java virture machine的規格書是完全公開的 : 可以在這邊查閱 : http://java.sun.com/docs/books/jvms/second_edition/html/VMSpecTOC.doc.html : 我也希望能夠從這邊找出一些端倪 : 若是可以 我會再回答看看這個問題 我是覺得不見得需要這麼深入到 jvm 裡面,我想 jvm 有 memory leak 的狀況 應該不會很多,不過 ruby 的 memory leak 狀況我就看多了,通常會是某種 特定的程式寫法會造成 memory leak. 此時也根本不必去了解 ruby interpreter 或 ruby virtual machine, 只要成功找出是哪段程式造成這個問題,然後隨便 亂改寫另一種寫法,memory leak 很可能就會消失了... 當然會這麼說,是在不信任 java/ruby virtual machine 實作的假設下。 相信他絕對不會有問題的話,自然不必做到這一步。關於這點,我也相信 jvm 的問題絕對比 ruby 少很多很多 XDDD 另外其實我沒看你給的實驗連結,看到 sbrhsieh 大的回應才注意到該實驗 是呼叫 java 裡面的 method. 要觀察 jvm 的動態,我建議還是用外部的方式 較為可靠,畢竟做到這本來就是在懷疑 jvm 本身,不應用被懷疑者來做觀察。 (例如用 ps -o rss 來看) 再說實驗裡的 VisualCafe 2.5 on a Windows95 computer.... 好像有點年紀了 XDDDD updated: 對了,回到最初的問題,memory fragmentation 的狀況,有時候是很難解決的。 這倒不見得一定是 jvm 的錯,跟程式寫法也很有關係,總之要盡量避免一次 大量地取用大量的記憶體,這樣狀況會比較好一點。跑好幾個月發現記憶體 慢慢地在成長,我想雖然不是很理想,但應該還可接受,一年重開一次應該也還好。 -- 「行け!Loki!」(rocky ロッキー) -Gurumin ぐるみん 王子? XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.28.18 ※ 編輯: godfat 來自: 220.135.28.18 (01/24 17:55)

01/24 19:32, , 1F
跑起來的比例是一樣的喔:p
01/24 19:32, 1F

01/24 19:35, , 2F
而且所有的java app都是一種runtime 唯有使用runtime
01/24 19:35, 2F

01/24 19:37, , 3F
才有能力對jvm內部運作進行觀察 否則只會看到最外層
01/24 19:37, 3F
文章代碼(AID): #19UkE7c- (java)
討論串 (同標題文章)
文章代碼(AID): #19UkE7c- (java)