国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Rumah Java javaTutorial jvm垃圾回收算法

jvm垃圾回收算法

Aug 19, 2017 pm 01:52 PM
Kitar semula menyampah algoritma

??? 我們都知道java語言與C語言最大的區(qū)別就是內(nèi)存自動(dòng)回收,那么JVM是怎么控制內(nèi)存回收的,這篇文章將介紹JVM垃圾回收的幾種算法,從而了解內(nèi)存回收的基本原理。

stop the world

??? 在介紹垃圾回收算法之前,我們需要先了解一個(gè)詞“stop the world”,stop the world會(huì)在執(zhí)行某一個(gè)垃圾回收算法的時(shí)候產(chǎn)生,JVM為了執(zhí)行垃圾回收,會(huì)暫時(shí)java應(yīng)用程序的執(zhí)行,等垃圾回收完成后,再繼續(xù)運(yùn)行。如果你使用JMeter測(cè)試過java程序,你可能會(huì)發(fā)現(xiàn)在測(cè)試過程中,java程序有不規(guī)則的停頓現(xiàn)象,其實(shí)這就是“stop the world”,停頓的時(shí)候JVM是在做垃圾回收。所以盡可能減少stop the world的時(shí)間,就是我們優(yōu)化JVM的主要目標(biāo)。接下來我們看一下目前有哪些常見垃圾回收的算法。

引用計(jì)數(shù)法

引用計(jì)數(shù)法顧名思義,就是對(duì)一個(gè)對(duì)象被引用的次數(shù)進(jìn)行計(jì)數(shù),當(dāng)增加一個(gè)引用計(jì)數(shù)就加1,減少一個(gè)引用計(jì)數(shù)就減1。

image

上圖表示3個(gè)Teacher的引用指向堆中的Teacher對(duì)象,那么Teacher對(duì)象的引用計(jì)數(shù)就是3,以此類推Student對(duì)象的引用計(jì)數(shù)就是2。

image

上圖表示Teacher對(duì)象的引用減少為2,Student對(duì)象的引用減少為0(減少的原因是該引用指向了null,例如teacher3=null),按照引用計(jì)數(shù)算法,Student對(duì)象的內(nèi)存空間將被回收掉。

引用計(jì)數(shù)算法原理非常簡(jiǎn)單,是最原始的回收算法,但是java中沒有使用這種算法,原因有2。1是頻繁的計(jì)數(shù)影響性能,2是它無法處理循環(huán)引用的問題。

例如Teacher對(duì)象中引用了Student對(duì)象,Student對(duì)象中又引用了Teacher對(duì)象,這種情況下,對(duì)象將永遠(yuǎn)無法被回收。

標(biāo)記清除

標(biāo)記清除算法,它是很多垃圾回收算法的基礎(chǔ),簡(jiǎn)單來說有兩個(gè)步驟:標(biāo)記、清除。

標(biāo)記:遍歷所有的GC Roots,并將從GC Roots可達(dá)的對(duì)象設(shè)置為存活對(duì)象;

清除:遍歷堆中的所有對(duì)象,將沒有被標(biāo)記可達(dá)的對(duì)象清除;

image

注意上圖灰色的對(duì)象,因?yàn)閺腉C Root遍歷不到它們(盡管它們本身有引用關(guān)系,但從GC Root無法遍歷到它們),因此它們沒有被標(biāo)記為存活對(duì)象,在清除過程中將會(huì)被回收。

這里需要注意的是標(biāo)記清除算法執(zhí)行過程中,會(huì)產(chǎn)生“stop the world”,讓java程序暫停等待以保證在標(biāo)記清除的過程中,不會(huì)有新的對(duì)象產(chǎn)生。為什么必須暫停java程序呢?舉個(gè)例子,如果在標(biāo)記過程完成后,又新產(chǎn)生了一個(gè)對(duì)象,而該對(duì)象已經(jīng)錯(cuò)過了標(biāo)記期,那么在接下來的清除流程中,這個(gè)新產(chǎn)生的對(duì)象因?yàn)槲幢粯?biāo)記,所以將被視為不可達(dá)對(duì)象而被清除,這樣程序就會(huì)出錯(cuò),因此標(biāo)記清除算法在執(zhí)行時(shí),java程序?qū)⒈粫和?,產(chǎn)生“stop the world”。

接下來我們總結(jié)一下標(biāo)記清除算法:

1、因?yàn)樯婕按罅康膬?nèi)存遍歷工作,所以執(zhí)行性能較低,這也會(huì)導(dǎo)致“stop the world”時(shí)間較長(zhǎng),java程序吞吐量降低;

2、我們注意到對(duì)象被清除之后,被清除的對(duì)象留下內(nèi)存的空缺位置,造成內(nèi)存不連續(xù),空間浪費(fèi)。

接下來我們看一下其他算法能不能改善這些問題?

標(biāo)記壓縮

標(biāo)記壓縮算法你可能已經(jīng)想到了,它就是在標(biāo)記清除算法的基礎(chǔ)上,增加了壓縮過程。

image

在進(jìn)行完標(biāo)記清除之后,對(duì)內(nèi)存空間進(jìn)行壓縮,節(jié)省內(nèi)存空間,解決了標(biāo)記清除算法內(nèi)存不連續(xù)的問題。

注意標(biāo)記壓縮算法也會(huì)產(chǎn)生“stop the world”,不能和java程序并發(fā)執(zhí)行。在壓縮過程中一些對(duì)象內(nèi)存地址會(huì)發(fā)生改變,java程序只能等待壓縮完成后才能繼續(xù)。

復(fù)制算法

??? 復(fù)制算法簡(jiǎn)單來說就是把內(nèi)存一分為二,但只使用其中一份,在垃圾回收時(shí),將正在使用的那份內(nèi)存中存活的對(duì)象復(fù)制到另一份空白的內(nèi)存中,最后將正在使用的內(nèi)存空間的對(duì)象清除,完成垃圾回收。

image

image

image

image

??? 復(fù)制算法相對(duì)標(biāo)記壓縮算法來說更簡(jiǎn)潔高效,但它的缺點(diǎn)也顯而易見,它不適合用于存活對(duì)象多的情況,因?yàn)槟菢有枰獜?fù)制的對(duì)象很多,復(fù)制性能較差,所以復(fù)制算法往往用于內(nèi)存空間中新生代的垃圾回收,因?yàn)樾律写婊顚?duì)象較少,復(fù)制成本較低。它另外一個(gè)缺點(diǎn)是內(nèi)存空間占用成本高,因?yàn)樗趦煞輧?nèi)存空間做對(duì)象復(fù)制,在非垃圾回收的周期內(nèi)只用到了一份內(nèi)存空間,內(nèi)存利用率較低。

小結(jié)

??? 以上我們介紹了常見的垃圾回收算法,這些算法各有各的優(yōu)缺點(diǎn),但在JVM中并不是單純的使用特定的算法,而是使用的一種叫垃圾回收器的東西,垃圾回收器可以看做一系列算法的不同組合,在不同的場(chǎng)景使用合適的垃圾回收器,才能起到事半功倍的效果。我們下一篇將介紹垃圾回收器。

?

參考資料:

《實(shí)戰(zhàn)Java虛擬機(jī)》 葛一鳴

《深入理解Java虛擬機(jī)(第2版)》 周志明

Atas ialah kandungan terperinci jvm垃圾回收算法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial PHP
1502
276
CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang CLIP-BEVFormer: Selia secara eksplisit struktur BEVFormer untuk meningkatkan prestasi pengesanan ekor panjang Mar 26, 2024 pm 12:41 PM

Ditulis di atas & pemahaman peribadi penulis: Pada masa ini, dalam keseluruhan sistem pemanduan autonomi, modul persepsi memainkan peranan penting Hanya selepas kenderaan pemanduan autonomi yang memandu di jalan raya memperoleh keputusan persepsi yang tepat melalui modul persepsi boleh Peraturan hiliran dan. modul kawalan dalam sistem pemanduan autonomi membuat pertimbangan dan keputusan tingkah laku yang tepat pada masanya dan betul. Pada masa ini, kereta dengan fungsi pemanduan autonomi biasanya dilengkapi dengan pelbagai penderia maklumat data termasuk penderia kamera pandangan sekeliling, penderia lidar dan penderia radar gelombang milimeter untuk mengumpul maklumat dalam modaliti yang berbeza untuk mencapai tugas persepsi yang tepat. Algoritma persepsi BEV berdasarkan penglihatan tulen digemari oleh industri kerana kos perkakasannya yang rendah dan penggunaan mudah, dan hasil keluarannya boleh digunakan dengan mudah untuk pelbagai tugas hiliran.

Bolehkah kecerdasan buatan meramalkan jenayah? Terokai keupayaan CrimeGPT Bolehkah kecerdasan buatan meramalkan jenayah? Terokai keupayaan CrimeGPT Mar 22, 2024 pm 10:10 PM

Konvergensi kecerdasan buatan (AI) dan penguatkuasaan undang-undang membuka kemungkinan baharu untuk pencegahan dan pengesanan jenayah. Keupayaan ramalan kecerdasan buatan digunakan secara meluas dalam sistem seperti CrimeGPT (Teknologi Ramalan Jenayah) untuk meramal aktiviti jenayah. Artikel ini meneroka potensi kecerdasan buatan dalam ramalan jenayah, aplikasi semasanya, cabaran yang dihadapinya dan kemungkinan implikasi etika teknologi tersebut. Kecerdasan Buatan dan Ramalan Jenayah: Asas CrimeGPT menggunakan algoritma pembelajaran mesin untuk menganalisis set data yang besar, mengenal pasti corak yang boleh meramalkan di mana dan bila jenayah mungkin berlaku. Set data ini termasuk statistik jenayah sejarah, maklumat demografi, penunjuk ekonomi, corak cuaca dan banyak lagi. Dengan mengenal pasti trend yang mungkin terlepas oleh penganalisis manusia, kecerdasan buatan boleh memperkasakan agensi penguatkuasaan undang-undang

Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Melaksanakan Algoritma Pembelajaran Mesin dalam C++: Cabaran dan Penyelesaian Biasa Jun 03, 2024 pm 01:25 PM

Cabaran biasa yang dihadapi oleh algoritma pembelajaran mesin dalam C++ termasuk pengurusan memori, multi-threading, pengoptimuman prestasi dan kebolehselenggaraan. Penyelesaian termasuk menggunakan penunjuk pintar, perpustakaan benang moden, arahan SIMD dan perpustakaan pihak ketiga, serta mengikuti garis panduan gaya pengekodan dan menggunakan alat automasi. Kes praktikal menunjukkan cara menggunakan perpustakaan Eigen untuk melaksanakan algoritma regresi linear, mengurus memori dengan berkesan dan menggunakan operasi matriks berprestasi tinggi.

Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Terokai prinsip asas dan pemilihan algoritma bagi fungsi isihan C++ Apr 02, 2024 pm 05:36 PM

Lapisan bawah fungsi C++ sort menggunakan isihan gabungan, kerumitannya ialah O(nlogn), dan menyediakan pilihan algoritma pengisihan yang berbeza, termasuk isihan pantas, isihan timbunan dan isihan stabil.

Aplikasi algoritma dalam pembinaan 58 platform potret Aplikasi algoritma dalam pembinaan 58 platform potret May 09, 2024 am 09:01 AM

1. Latar Belakang Pembinaan 58 Portrait Platform Pertama sekali, saya ingin berkongsi dengan anda latar belakang pembinaan 58 Portrait Platform. 1. Pemikiran tradisional platform pemprofilan tradisional tidak lagi mencukupi Membina platform pemprofilan pengguna bergantung pada keupayaan pemodelan gudang data untuk menyepadukan data daripada pelbagai barisan perniagaan untuk membina potret pengguna yang tepat untuk memahami tingkah laku, minat pengguna dan keperluan, dan menyediakan keupayaan sampingan, akhirnya, ia juga perlu mempunyai keupayaan platform data untuk menyimpan, bertanya dan berkongsi data profil pengguna dan menyediakan perkhidmatan profil dengan cekap. Perbezaan utama antara platform pemprofilan perniagaan binaan sendiri dan platform pemprofilan pejabat pertengahan ialah platform pemprofilan binaan sendiri menyediakan satu barisan perniagaan dan boleh disesuaikan atas permintaan platform pertengahan pejabat berkhidmat berbilang barisan perniagaan, mempunyai kompleks pemodelan, dan menyediakan lebih banyak keupayaan umum. 2.58 Potret pengguna latar belakang pembinaan potret di platform tengah 58

Algoritma pengesanan yang dipertingkatkan: untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi Algoritma pengesanan yang dipertingkatkan: untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi Jun 06, 2024 pm 12:33 PM

01Garis prospek Pada masa ini, sukar untuk mencapai keseimbangan yang sesuai antara kecekapan pengesanan dan hasil pengesanan. Kami telah membangunkan algoritma YOLOv5 yang dipertingkatkan untuk pengesanan sasaran dalam imej penderiaan jauh optik resolusi tinggi, menggunakan piramid ciri berbilang lapisan, strategi kepala pengesanan berbilang dan modul perhatian hibrid untuk meningkatkan kesan rangkaian pengesanan sasaran dalam imej penderiaan jauh optik. Menurut set data SIMD, peta algoritma baharu adalah 2.2% lebih baik daripada YOLOv5 dan 8.48% lebih baik daripada YOLOX, mencapai keseimbangan yang lebih baik antara hasil pengesanan dan kelajuan. 02 Latar Belakang & Motivasi Dengan perkembangan pesat teknologi penderiaan jauh, imej penderiaan jauh optik resolusi tinggi telah digunakan untuk menggambarkan banyak objek di permukaan bumi, termasuk pesawat, kereta, bangunan, dll. Pengesanan objek dalam tafsiran imej penderiaan jauh

Tambah SOTA dalam masa nyata dan meroket! FastOcc: Inferens yang lebih pantas dan algoritma Occ mesra penggunaan sudah tersedia! Tambah SOTA dalam masa nyata dan meroket! FastOcc: Inferens yang lebih pantas dan algoritma Occ mesra penggunaan sudah tersedia! Mar 14, 2024 pm 11:50 PM

Ditulis di atas & Pemahaman peribadi penulis ialah dalam sistem pemanduan autonomi, tugas persepsi adalah komponen penting dalam keseluruhan sistem pemanduan autonomi. Matlamat utama tugas persepsi adalah untuk membolehkan kenderaan autonomi memahami dan melihat elemen persekitaran sekeliling, seperti kenderaan yang memandu di jalan raya, pejalan kaki di tepi jalan, halangan yang dihadapi semasa memandu, tanda lalu lintas di jalan raya, dan sebagainya, dengan itu membantu hiliran. modul Membuat keputusan dan tindakan yang betul dan munasabah. Kenderaan dengan keupayaan pemanduan autonomi biasanya dilengkapi dengan pelbagai jenis penderia pengumpulan maklumat, seperti penderia kamera pandangan sekeliling, penderia lidar, penderia radar gelombang milimeter, dsb., untuk memastikan kenderaan autonomi itu dapat melihat dan memahami persekitaran sekeliling dengan tepat. elemen , membolehkan kenderaan autonomi membuat keputusan yang betul semasa pemanduan autonomi. kepala

Algoritma pengesyoran berita berdasarkan peningkatan graf global Algoritma pengesyoran berita berdasarkan peningkatan graf global Apr 08, 2024 pm 09:16 PM

Pengarang |. Disemak oleh Wang Hao |. Sekitar tahun 2010, aplikasi berita asing yang popular termasuk Zite dan Flipboard, manakala aplikasi berita tempatan yang popular adalah empat portal utama. Dengan populariti produk cadangan berita era baharu yang diwakili oleh Toutiao, apl berita telah memasuki era baharu. Bagi syarikat teknologi, tidak kira yang mana satu mereka, selagi mereka menguasai teknologi algoritma pengesyoran berita yang canggih, mereka pada dasarnya akan mempunyai inisiatif dan suara di peringkat teknikal. Hari ini, mari kita lihat kertas Anugerah Pencalonan Kertas Panjang Terbaik RecSys2023—GoingBeyondLocal:GlobalGraph-EnhancedP

See all articles