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?
Holodepth köprüsü
Rendering pipeline değil · runtime specialization observatory
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?
Code site → IC slot → state machine → fast / generic path
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.xeriş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
PRESET: IC_STATE_MACHINE · runtime specialization observatory
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.
Stable Objects · MONO · slot #12 · 94% hit
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?
Preset seçimi — gelen obje çeşitliliği, IC state ve HUD metriklerini değiştirir.
- 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 = 1ataması 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?
Canlı simülasyonda gözünüzü şunlara takın — preset açıklamaları değil, ekranda akan görsel sinyaller.
- 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 Objects → Mixed Shapes → shape shockwave → JSON Hell — tek turda UNINIT'ten MEGA'ya lifecycle.