holodepth

Holodepth • Runtime Atlas • JavaScript motor mimarisi

IC State Machine Visualizer

V8 JIT Lifecycle compiler pipeline gösterir; IC State Machine runtime specialization dynamics katmanını anlatır — motor objeleri tanımaya çalışırken inline cache nasıl evrilir?

Event Loop · V8 JIT · byteomi.com

Holodepth köprüsü

Browser Atlas modelleri scheduling, render ve process topology anlatır. JavaScript Motor Mimarisi serisi VM içi adaptasyon katmanına iner — burada ilk durak inline cache (IC) state machine.

Bu demo cache hit dashboard değil; runtime adaptation lifecycle simülasyonudur. Tamamen client-side — V8 veya Chrome'a bağlanmaz. Amaç: motorun objeleri tanıyıp özel hızlı yol oluşturma sürecini görmek.

IC nasıl okunur?

Omurga: CODE SITE (ör. obj.x) bir IC SLOT numarasına bağlanır; merkezde STATE MACHINE (UNINITIALIZED → MONOMORPHIC → POLYMORPHIC → MEGAMORPHIC) canlı geçiş yapar; altta FAST PATH veya GENERIC PATH açılır.

CODE SITE IC SLOT STATE MACHINE FAST / GENERIC PATH

  • UNINITIALIZED. IC slot #12 boş — henüz shape kaydı yok. İlk obj.x erişimi miss sayılır; motor «bu site'a hangi hidden class'lar geliyor?» feedback'ini toplamaya başlar, fast path kapalıdır.
  • MONOMORPHIC. Tek hidden class kilitlendi. MAP CHECK ve OFFSET LOAD bu site için sabitlendi; gelen obje her seferinde aynı map'e denk gelirse IC hit oranı yüksek kalır — ideal specialization durumu.
  • POLYMORPHIC. 2–4 farklı shape slot'ta saklanır. Obje bilinen map'lerden biri değilse compare chain devreye girer; motor adapte olmaya devam eder ama her ek tip ek compare maliyeti ekler.
  • MEGAMORPHIC. Cache kapasitesi doldu — compare chain terk edilir, generic property lookup açılır. TurboFan guard artık güvenilmez; JIT'in bu site için ürettiği specialization kaybolur (specialization lost).

Event Loop ≠ IC Visualizer. Event Loop zamanlar; JIT Lifecycle tier flow; IC Visualizer tek bir property load site için specialization dynamics gösterir.

IC State Machine Visualizer

Byteomi runtime · CANLI · IC specialization simulator

Code site → IC slot → state machine → fast/generic path · shape packets · TurboFan guard · deopt beam · MAP TRANSITION shockwave.

Runtime note Simülasyon — gerçek V8 IC veya profiling verisi kullanmaz. Amaç: inline cache state geçişlerini ve hidden class feedback etkisini görselleştirmek.

REC IC LIVE LOAD IC #12
IC slot #12
State MONOMORPHIC
Hits 94%
Misses 0
Maps 1
TurboFan guard ENABLED
IC insight Tek shape · MAP CHECK ✓ · fast beam stabil.

Stable Objects · MONO · slot #12 · 94% hit

UNINIT MONO POLY MEGA DEOPT

Bu demo ne işe yarar?

Gerçek tarayıcı motorunu okumaz — üstteki Runtime note bunu hatırlatır. Basit bir öğretim modeli: tek bir property load satırı (obj.x) ve ona bağlı IC slot #12 üzerinden çalışır. Her erişimde motor «bu obje daha önce gördüğüm tipe (hidden class) benziyor mu?» diye kontrol eder ve slot kaydını günceller.

Modelde solda code site, ortada state halkası (UNINIT → MONO → POLY → MEGA), altta fast path ve generic path lane'leri vardır. Stable Objects ile tek tip obje gelince state MONO'da kalır; Mixed Shapes ile POLY'ye, JSON Hell ile MEGA'ya kayarsınız — üst HUD'daki hits / misses / maps ve TurboFan guard satırı bu geçişi rakamlarla izler.

obj.z = 1 · Shape shockwave ile tek satırda shape bozulması simüle edilir; IC invalidate olur, fast beam kapanır, state halkası düşer. Ölçüm aracı değil — «aynı kod satırı neden bazen hızlı, bazen yavaş?» sorusuna model üzerinde görsel cevap vermek için tasarlandı.

Kontroller ne yapıyor?

  • Stable Objects. Tüm objeler aynı hidden class ile gelir — simülasyon MONO state'te kalır. IC slot tek map'e kilitlenir; hits yükselir, maps = 1; TurboFan guard ENABLED kalır; fast path lane açıktır.
  • Mixed Shapes. 2–4 farklı shape dönüşümlü gelir — state POLY'ye geçer. Compare chain devreye girer; maps sayacı artar, hits düşer; motor adapte olmaya devam eder ama maliyet hissedilir.
  • JSON Hell. Her obje farklı tip — kısa sürede MEGA'ya düşer. Cache taşar; SPECIALIZATION LOST yazar; generic path lane açılır; TurboFan guard kırılır, JIT bu site için artık güvenemez.
  • Shape shockwave. Anlık aksiyon butonu — obj.z = 1 ataması shape transition tetikler. MAP TRANSITION dalgası yayılır; IC invalidate olur; aktif preset ne olursa olsun state bir kademe düşer (genelde MONO → POLY veya daha aşağı).

Ne görmelisiniz?

  • Kod satırı highlight. Code site panelinde aktif LOAD satırı · IC slot badge.
  • State ring glow. Merkezde aktif node parlar · UNINIT → MONO → POLY → MEGA geçiş animasyonu.
  • MONO fast beam. Yeşil ışın · MAP CHECK ✓ · OFFSET LOAD ✓ · fast path lane açık.
  • POLY orbit. Turuncu shape paketleri yörüngede · compare chain dallanması · beam adaptasyonu.
  • MEGA generic lane. Fast beam kaybolur · mor GENERIC LOOKUP · deopt beam.
  • Shape shockwave. obj.z = 1 · MAP TRANSITION dalgası · IC invalidate · yeşilden sarıya düşüş.
  • HUD telemetry. Hits/misses/maps sayaçları · TurboFan SPECULATION LOST yazısı · live trace akışı.

Özet ve devam

IC State Machine, Runtime Atlas'ın VM specialization katmanını açar — browser pipeline'dan bağımsız. Bir sonraki adım: Property Load Beam — hidden class memory targeting pipeline.

Önerilen tur: Stable ObjectsMixed Shapes → shape shockwave → JSON Hell — tek turda UNINIT'ten MEGA'ya lifecycle.