tag jvm

標籤
貢獻56
138
05:34 PM · Oct 25 ,2025

@jvm / 博客 RSS 訂閱

JellyfishMIX - JVM 新生代為什麼要有兩個 survivor(from, to) 區

先附一段對新生代中複製算法較好的理解: 首先得明白複製算法的思想: 將原有的內存空間劃分成兩塊,每次只使用其中一塊,在垃圾回收的時候,將正在使用的內存中的存活對象複製到另一塊內存區域中,然後清除正使用過的內存區域,交換兩個區域的角色,完成垃圾回收。 然後為什麼要在新生代中使用複製算法: 因為新生代gc比較頻繁、對象存活率低,用複製算法在回收時的效率會更高,也不會產生內存碎

jvm , 垃圾回收機制 , 垃圾回收 , JAVA

收藏 評論

今夜有點兒涼 - Java堆內存分區及各自特點

Java堆內存分區及各自特點 Java堆內存主要分為新生代(Young Generation)和老年代(Old Generation),其中新生代又進一步分為Eden區和兩個Survivor區(From和To)。這種分區設計是為了優化垃圾回收效率,基於對象生命週期的不同特性。 1. Eden區(伊甸園) 特點: 對象初始分配區域:新創建的對象(除了大對象)首先被分配到Eden區 空間佔比:在

, jvm

收藏 評論

今夜有點兒涼 - JVM內存模型及分區詳解

JVM內存模型及分區詳解 JVM內存模型主要分為以下幾個核心區域,每個區域有特定的用途和存儲內容: 1. 程序計數器(Program Counter Register) 存儲內容: 當前線程執行的字節碼行號指示器 對於Java方法,記錄正在執行的虛擬機字節碼指令的地址 對於Native方法,值為undefined(未定義) 特點: 線程私有,每個線程都有獨立的程序計數器 內存空間最

jvm

收藏 評論

Aresxue - Java字節碼與流量回放

字節碼改寫/增強——Java帝國的DNA + 流量回放的魔法棒 What(是什麼) 在jvm中大約有200條左右的指令。這些指令包括各種操作,用於信息加載、存儲、算術計算、類型轉換、對象創建、調用方法、控制流管理和異常處理等,是整個java世界的基石。所謂的字節碼增強/改寫就是在不修改Java源代碼的情況下,通過直接操作編譯後的字節碼來動態修改程序行為。從實現角度字節碼其實是沒有增強這麼一説的,只

jvm , 字節碼 , JAVA , 回放

收藏 評論

Aresxue - Java字節碼改寫之asm進階使用

在java世界裏,字節碼改寫 + 反射可以讓你變成“上帝”,你可以完成任何你想做的事情,而字節碼改寫中asm是當之無愧的老大哥,對字節碼認識不深的小夥伴可以看看我這篇文章 https://www.zhihu.com/question/7501915796/answer/61918375697 本文的目的是現有互聯網上asm的資料不夠體系和細緻,其和傳統java編程也非常的不一樣,使用時有很多需要注

asm , jvm , 字節碼 , JAVA

收藏 評論

Aresxue - 聊聊為什麼java會有這麼多的字節碼改寫方式(jdk/cglib/asm/javasist)?

字節碼改寫方式的多樣性主要源於不同的使用場景、需求和設計哲學。 以下兩個方面是比較重要的原因: https://www.zhihu.com/question/7501915796/answer/61918375697 學習和使用成本 精細化控制能力與性能需求 首先説一下jdk代理,它是在2000年5月發佈的jdk 1.3中引入的,這裏對jdk代理就不做過於詳細的介紹了,它的出現主要是為了提

cglib , asm , jvm , 字節碼 , JAVA

收藏 評論

Aresxue - “傻傻”的JAVA編譯器

故事是從一個問題開始的:為什麼 Java 中 2 * (i * i) 比 2 * i * i更快? 猛地一看,我還以為有人在釣魚,這倆玩意不應該是一模一樣嗎?第二反應是計算結果溢出了int值所以導致了這個差異,於是我掏出JMH這個利器準備開始一輪驗證,為了避免干擾,構造了不同的測試用例集用於縱向與橫向的比較。 @BenchmarkMode(Mode.AverageTime)

編譯 , jvm , JAVA

收藏 評論

半夏之沫 - JAVA虛擬機-方法區與字符串常量池

大家好,我是半夏之沫 😁😁 一名金融科技領域的JAVA系統研發😊😊 我希望將自己工作和學習中的經驗以最樸實,最嚴謹的方式分享給大家,共同進步👉💓👈 👉👉👉👉👉👉👉👉💓寫作不易,期待大家的關注和點贊💓👈👈👈👈👈👈👈👈 👉👉👉👉👉👉👉👉💓關注微信公眾號【技術探界】 💓👈👈👈👈👈👈👈👈 前言

jvm , 虛擬機 , jdk8 , JAVA , string

收藏 評論

Aresxue - 2025最新Java反射性能優化進階

以下論點均基於jdk8但大部分並不限於jdk8 openjdk version "1.8.0_382-internal" OpenJDK Runtime Environment (build 1.8.0_382-internal-b05) OpenJDK 64-Bit Server VM (build 25.382-b05, mixed mode) 首先讓我們從兩個問題出發 1.使用field和g

性能優化 , 反射 , jvm , JAVA , 後端

收藏 評論

快手技術 - 四年匠心磨礪,快手系統軟件技術創新與領域演進之路

一、系統軟件技術的核心價值與面臨挑戰 系統軟件作為軟件架構的基石,扮演着連接軟件與硬件的橋樑角色,位於整個軟件生態的最底層,處於關鍵核心的位置。系統軟件最為顯著的特徵在於其規模效應,隨着服務器體量的增加,系統軟件研發的價值愈發凸顯。 首先,系統軟件技術能夠顯著提升服務器資源的利用率,實現翻倍效果,同時性能也能提升 30%~50%,從而大幅降低公司的服務器資源成本。其次,專業的系統軟件團隊能夠迅速定

jvm , 協程 , 編譯器

收藏 評論

Mulavar - 【Flink】TaskManager 內存模型及計算邏輯詳解

本文旨在詳解 Flink TaskManager 的內存模型以及其各部分內存佔比的計算邏輯。首先,結合官網展示了當前 Flink 的內存模型,並在之後結合 JVM 自身內存模型和管理機制結合講解 Flink 內存模型的各個部分,最後結合源碼解釋了各部分內存佔比的計算邏輯。 1 內存模型組成部分 本節摘自官網:https://nightlies.apache.org/flink/flink-docs

內存 , 大數據 , jvm , 源碼分析 , flink

收藏 評論

呂秀才 - 深入淺出Java多線程(十三):阻塞隊列

引言 大家好,我是你們的老夥計秀才!今天帶來的是[深入淺出Java多線程]系列的第十一篇內容:AQS(AbstractQueuedSynchronizer)。大家覺得有用請點贊,喜歡請關注!秀才在此謝過大家了!!! 在現代多核CPU環境中,多線程編程已成為提升系統性能和併發處理能力的關鍵手段。然而,當多個線程共享同一資源或訪問臨界區時,如何有效地控制線程間的執行順序以保證數據一致性及避免競態條件

jvm , 多線程 , JAVA , 阻塞隊列 , 隊列

收藏 評論

華為雲開發者聯盟 - 面試必問:Java 垃圾回收機制

摘要:垃圾回收機制是守護線程的最佳示例,因為它始終在後台運行。 本文分享自華為雲社區《一文帶你瞭解Java 中的垃圾回收機制》,作者:海擁。 介紹 • 在 C/C++ 中,程序員負責對象的創建和銷燬。通常程序員會忽略無用對象的銷燬。由於這種疏忽,在某些時候,為了創建新對象,可能沒有足夠的內存可用,整個程序將異常終止,導致OutOfMemoryErrors。 • 但是在 Java 中,程

jvm , 垃圾回收機制 , 垃圾回收 , JAVA , 對象

收藏 評論

京東雲開發者 - 從歷代GC算法角度刨析ZGC

作者:京東科技 文濤 前言 本文所有介紹僅限於HotSpot虛擬機, 本文先介紹了垃圾回收的必要手段,基於這些手段講解了歷代垃圾回收算法是如何工作的, 每一種算法不會講的特別詳細,只為讀者從算法角度理解工作原理,從而引出ZGC,方便讀者循序漸進地瞭解。 GC 是 Garbage Collection 的縮寫,顧名思義垃圾回收機制,即當需要分配的內存空間不再使用的時候,JVM 將調用垃圾回收機制來回

jvm , 算法 , gc , 垃圾回收 , 後端

收藏 評論

藍月亮 - java屬於軟件開發嗎

1. 本週學習總結 (1)Java不僅是程序語言,還是一種標準規範,代表着解決問題的方案。Java是一個面向對象的編程語言,熟悉後相對於c++更方便,其一大特色就是能夠跨平台運行。 (2)Java發展至今,可以根據應用領域分為三大平台,分別是Java SE、Java EE與Java ME。其中,Java SE是各應用平台的基礎,它分為四個部分:JVM、JR

jvm , java屬於軟件開發嗎 , 後端開發 , JAVA

收藏 評論

西洋無悔 - JVM指標及Istio指標

JVM是java程序運行的基礎,JVM中各種事件比如:GC,class loading,JPMS,heap,thread等等其實都可以有日誌來記錄。通過這些日誌,我們可以監控JVM中的事件,並可以依次來對java應用程序進行調優。 在JDK9中引入的Xlog日誌服務就是為這個目的而創建的。另外注意:很多人在學Java高級過程中難免會遇到各種問題解決

雲計算 , jvm , JAVA , 雲原生 , JVM指標及Istio指標

收藏 評論

京東雲開發者 - 淺析JVM GC配置指南 | 京東雲技術團隊

本文旨在簡明扼要説明各回收器調優參數,如有疏漏歡迎指正。 1、JDK版本 以下所有優化全部基於JDK8版本,強烈建議低版本升級到JDK8,並儘可能使用update_191以後版本。 2、如何選擇垃圾回收器 響應優先應用:面向C端對響應時間敏感的應用,堆內存8G以上建議選擇G1,堆內存較小或低版本JDK選擇CMS; 吞吐量優先應用:對響應時間不敏感,以高吞吐量為目標的應用(如MQ、Worker),建

jvm , jvm調優 , gc

收藏 評論

阿東 - Try to Avoid -XX:+UseGCLogFileRotation

Try to Avoid -XX:+UseGCLogFileRotation Source:https://dzone.com/articles/try-to-avoid-xxusegclogfilerotation Developers take advantage of the JVM argument -XX:+UseGCLogFileRotation to rotate GC log fi

jvm , jvm調優

收藏 評論

kimmking - OpenJDK11推薦使用G1而不是ZGC的4個原因 - 知乎

OpenJDK11下,目前不建議使用ZGC,主推G1,主要是基於幾個考慮: 1)ZGC時Java進程佔用三倍內存問題:由於ZGC着色指針把內存空間映射了3個虛擬地址,使得TOP/PS等命令查看佔用內存時看到Java進程佔用內存過大。此問題不影響操作系統,但是會影響到監控運維工具,需要注意。。 參考以下材料: ZGC最大堆大小超過物理內存:https://www.it1352.com/22819

g1gc , jvm , gc , openjdk-11

收藏 評論

蟬沐風 - 我是一個垃圾

噠噠噠...... 回收者的腳步聲越來越清晰,我竭力鎖緊身體讓自己別那麼引人注目,儘管氣喘吁吁,但我仍然壓抑住自己的呼吸。 終歸是藏不住的,但是多活個幾毫秒也是好的,我們都這麼想。 因為回收者是來殺我們的。 第0回 我是一個垃圾 我是一個垃圾,至少我的主人是這麼喊我的。 我不知道自己做錯了什麼,甚至不知道自己做了什麼。 我只是被他創造了出來,然後被挪來挪去,我的一生都在漂泊。 聽説C帝國的朋友都是

jvm , gc , 垃圾回收

收藏 評論

阿東 - 【Java】GC 日誌 - 用户、系統、真實 - 使用時間

引言 如標題所言,本文介紹JVM的三個時間如何區分,用户時間,系統時間和真實時間的區別是什麼。 Source GC Logging – user, sys, real – which time to use? Gandhi In the Garbage Collection log file, 3 types of time are reported for every single GC ev

jvm , gc , JAVA

收藏 評論

香奈兒 - 反射、枚舉以及lambda表達式_枚舉類為什麼不能被反射

文章目錄 字符串常量池 創建對象的思考 字符串常量池(StringTable) 再談String對象創建 intern方法 反射 定義 用途 反射基本信息 反射相關的類 Class類中的相關方法 反射示例

spark , System , 大數據 , 數據結構 , jvm , intellij idea , JAVA

收藏 評論

京東雲開發者 - 線上JAVA應用平穩運行一段時間後出現JVM崩潰問題 | 京東雲技術團隊

一、問題是怎麼發現的 系統是一個定時任務系統,需要定時執行業務代碼,業務代碼主要是訪問MYSQL數據庫和緩存進行操作,該開始啓動,系統日誌一切正常,但是運行一段時間到凌晨後,系統就自動崩潰了,java進程沒有了,只留下了程序崩潰日誌如下: cat: /proc/1/environ: Permission denied [admin@host-11-40-38-52 ~]$ more hs_err_

定時任務 , jvm , JAVA , 後端

收藏 評論

雲端小悟空 - MemoryAnalyzer 修改啓動內存

一、JVM常用啓動參數 -Xms:設置堆的最小值。 -Xmx:設置堆的最大值。 -Xmn:設置新生代的大小。 -Xss:設置每個線程的棧大小。 -XX:NewSize:設置新生代的初始值。 -XX:MaxNewSize:設置新生代的最大值。 -XX:PermSize:設置永久代的初始值。 -XX:MaxPermSize:設置永久代的

機器學習 , 最小值 , jvm , 人工智能 , 死循環

收藏 評論