成人黄色在线网站 I 国产aa免费 I 中文字幕免费高清 I 国产三级影院 I 日韩欧美三级在线观看 I 久久久国产精品麻豆a片 I 欧美与黑人午夜性猛交久久久 I 91国产精品视频在线 I 国产美女狂喷水潮在线播放 I 黄页免费网站在线观看 I 欧美日韩激情视频 I 午夜理论无码片在线观看免费 I 深夜爽爽动态图无遮无挡 I 国精产品一区一区三区有限公司杨 I 天天操天天舔天天爽 I 免费看日本黄色片 I 成人va在线 I 日韩中文字幕在线观看 I 婷婷综合网 I 97视频免费观察看 I 色月丁香 I 日韩视频一二三 I 男女黄色毛片 I 美女疯狂连续喷潮视频 I 亚洲日本va一区二区sa I 欧美日韩视频区 I 毛片网在线 I 欧美一本在线 I 少妇一级淫片免费放香蕉 I avav在线看 I 久久精品亚洲中文字幕无码网站 I 天堂av在线中文在线新版 I 电影一区 电影二区 I 色av吧 中文字幕 I 国产精品伊人色

歡迎來到培訓無憂網!

全國切換

咨詢熱線 400-001-5729

位置:培訓無憂網 > 新聞資訊 > 電腦/IT > java培訓 >  Java培訓之對比堆與本地內存有哪些區別

Java培訓之對比堆與本地內存有哪些區別

來源:粵嵌 發布人:星星

2022-01-08 15:27:07|已瀏覽:655次

堆與本地內存有哪些區別

      使用Java編程時,考慮到終寫成程序的執行效率,可能在選擇直接使用Java堆new對象,或是直接分配本地內存之間很難做出決定。來對比下Java堆與本地內存。

      使用Java的一個好處就是你可以不用親自來管理內存的分配和釋放。當你用new關鍵字來實例化一個對象時,它所需的內存會自動的在Java堆中分配。堆會被垃圾回收器進行管理,并且它會在對象超出作用域時進行內存回收。但是在JVM中有一個‘后門’可以讓你訪問不在堆中的本地內存(native memory)。
      使用Unsafe來分配和回收內存
      sun.misc.Unsafe可以讓你在Java中分配和回收本地內存,就像C語言中的malloc和free。通過它分配的內存不在Java堆中,并且不受垃圾回收器的管理,因此在它被使用完的時候你需要自己來負責釋放和回收。
      跨越JVM的屏障來讀本地內存大約會比直接讀Java堆中的內存慢10倍,而對于寫操作會慢大約2倍。但是需要注意的是,由于每一個SomeMemoryObject對象所管理的本地內存空間都是獨立的,因此讀寫操作都不是連續的。那么接下來就來對比下讀寫連續的內存空間的性能。
      訪問一大塊的連續內存空間
      在做連續訪問的時候,Java堆內存通常都比本地內存要快。對于隨機地址訪問,堆內存僅僅比本地內存慢一點點,并且是針對大塊連續數據的時候,而且沒有慢很多。
      在Java中使用本地內存有它的意義,比如當你要操作大塊的數據時(>2G)并且不想使用垃圾回收器(GC)的時候。從延遲的角度來說,直接訪問本地內存不會比訪問Java堆快。這個結論其實是有道理的,因為跨越JVM屏障肯定是有開銷的。這樣的結論對使用本地還是堆的ByteBuffer同樣適用。使用本地ByteBuffer的速度提升不在于訪問這些內存,而是它可以直接與操作系統提供的本地IO進行操作。

      事實上使用Java寫的程序,經過編譯器編譯打亂后很可能已經不是自己所想象的樣子了,畢竟Java是面向對象的語言,所以更多的時候還不如怎么寫得快就怎么寫,畢竟編譯器在很多時候都不太聰明,我們自以為寫的很直接的程序也有可能編譯成亂糟糟的復雜的機器語言。

      本文由培訓無憂網達內教育專屬課程顧問整理發布,更多Java培訓課程資訊歡迎關注培訓無憂網Java培訓頻道或添加老師微信:15033336050

      注:尊重原創文章,轉載請注明出處和鏈接 http://www.hebeijilong.cn/news-id-13846.html 違者必究!部分文章來源于網絡由培訓無憂網編輯部人員整理發布,內容真實性請自行核實或聯系我們,了解更多相關資訊請關注java培訓頻道查看更多,了解相關專業課程信息您可在線咨詢也可免費申請試課。關注官方微信了解更多:150 3333 6050

留下你的信息,課程顧問老師會一對一幫助你規劃更適合你的專業課程!
  • 姓名:

  • 手機:

  • 地區:

  • 想學什么:

  • 培訓無憂網
免 費 申 請 試 聽
提交申請,《培訓無憂網》課程顧問老師會一對一幫助你規劃更適合你的專業課程!