@軟件設計

動態 列表
@poemyang

為什麼我的應用會卡頓?垃圾回收中的STW難題與破解之道

垃圾回收算法:清除、壓縮、複製 可達性分析提供了一種有效的方式,來標記哪些對象死亡,哪些對象還存活。然而,確定哪些對象死亡可以被回收,只是垃圾回收的第一步, 這個過程通常被稱為標記(Mark)。接下來,需要一種方法來回收這些死亡對象佔用的內存,以便這些內存可以被重新使用。這就是垃圾回收算法的任務。 垃圾回收算法描述瞭如何有效地回收垃圾對象的內存,同時儘量減少對程序執行的影響。 清除

poemyang 頭像

@poemyang

昵稱 poemyang

@poemyang

不止新生代與老年代:深入Java虛擬機堆內存佈局與TLAB、卡表等優化機制

Java虛擬機運行數據區域 在JDK 8及以上版本中,Java虛擬機運行時數據區域主要包括以下部分: 1)堆(Heap):這是Java虛擬機中最大的內存區域,所有線程共享,主要用於存放對象實例和數組。這也是垃圾回收的主要區域,因此也被稱作GC堆(Garbage Collection Heap)。 2)方法區(Method Area):在JDK 8之前,這被稱為永久代(PermGe

poemyang 頭像

@poemyang

昵稱 poemyang

@poemyang

吞吐量、延遲、內存:深入理解垃圾回收的“三元悖論”

垃圾回收算法的評價標準:吞吐量、延遲、內存,孰輕孰重? 評估和選擇垃圾回收器時,不存在一體通用的最優解。不同的應用場景對性能的要求截然不同,因此需要通過一套標準化的指標來衡量垃圾回收算法的特性。通常,關注三個主要的、且相互制約的評價指標:吞吐量(Throughput)、最大暫停時間(Max Pause Time / Latency)以及堆使用效率(Heap Usage Efficiency)

poemyang 頭像

@poemyang

昵稱 poemyang

@poemyang

告別漫長GC停頓:深入解析G1如何實現可預測的毫秒級響應

G1(Garbage-First)垃圾回收器是一款面向服務端應用、為大內存和多處理器系統設計的革命性垃圾回收器。G1的核心設計目標是在滿足高吞吐量的同時,建立一個“可預測的停頓時間模型”(Pause-Time Model),讓使用者可以明確指定在一個長度為M毫秒的時間片段內,消耗在垃圾回收上的時間大概率不超過N毫秒。這一特性是它與之前回收器(如CMS)最本質的區別。 在JDK 9發佈之後,G

poemyang 頭像

@poemyang

昵稱 poemyang

@ntksol

聊聊前端 UI 組件:核心概念

本文是一個文章系列的第一篇,主要説明幾個基本概念以及所要探討的目標主體,目的是統一認知上的「上下文」以儘量避免因信息不對稱而造成理解障礙。 這一系列文章是關於前端 UI 組件的,我想通過這個系列靜下心來好好聊聊與之相關的內容。 每個名詞都是概念,就像一個「數據包」,根據其被「壓縮」的信息量,要真正地理解一個詞語可能需要大量的知識儲備。 基本概念 我們要聊的是「前端 UI 組件」,這個詞可以進一步拆

ntksol 頭像

@ntksol

昵稱 歐雷

@ntksol

聊聊前端 UI 組件:組件特徵

本文是文章系列「聊聊前端 UI 組件」的第二篇,內容與本系列的上篇文章《聊聊前端 UI 組件:核心概念》有所關聯,如果還沒看過,建議去看下。 本文的主要內容是根據特徵對前端 UI 組件進行建模,讓我們儘可能充分地瞭解它的方方面面,併為如何設計以及建立一個組件體系打下基礎。 組件構成 從關注點分離的角度分解 UI 組件,並分析其各部分的易變性。 構成元素 一個完整的具備功能的 UI 組件的構成,有結

ntksol 頭像

@ntksol

昵稱 歐雷

@ntksol

聊聊前端 UI 組件:組件體系

本文是文章系列「聊聊前端 UI 組件」的第三篇。 在本系列的上篇文章《聊聊前端 UI 組件:組件特徵》中,通過從關注點分離的角度進行前端 UI 組件的構成分析,並以較為抽象的視角對 UI 組件分門別類,以及描述了讓組件間可以表現複用的繼承關係,從而建立出前端 UI 組件的特徵模型。 本文將以上篇文章中所得出的特徵模型為基礎,探討下如何設計並建立一個前端 UI 組件體系。 在做組件體系設計的時候,最

ntksol 頭像

@ntksol

昵稱 歐雷

@ntksol

聊聊前端 UI 組件:組件設計

在本系列文章《聊聊前端 UI 組件:組件體系》中初步説明了 UI 組件的架構設計,本文將在此基礎上進一步展開説説那篇文章中一筆帶過的部分,並闡述在設計一個 UI 組件時應該注意的點有哪些。 目錄結構 在《聊聊前端 UI 組件:組件體系》中列出的目錄結構的基礎上做了些許調整—— component ├── demo # 示例相關文件 │ └

ntksol 頭像

@ntksol

昵稱 歐雷