java中記憶體的使用

來源:互聯網
上載者:User

一個java運行起來執行代碼,主要的記憶體消耗有這幾塊:

1、堆

2、棧 :棧是每個線程一個的,是以消耗的記憶體是記憶體大小*線程數,當線程數特多時候需要小心 。

3、直接記憶體:主要是通道時候的緩衝,在記憶體不足是也會報OutOfMemoryError錯誤,外帶sun.misc.Unsafe.allocateMemory異常(這個我認為類似於C中的malloc的功能) 。

4、socket的cache和buffer,這個也不在堆中分配,當無法分配時候,會報Too many open files 的錯誤。

5、jni代碼中,類庫執行的代碼記憶體,也不再堆中。

6、虛擬機器執行也要消耗一定的記憶體 。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.