Sanal makine tasarımında iki köklü yaklaşım var: yığın tabanlı ve kayıt tabanlı mimari. Her biri bytecode'u farklı biçimde temsil eder ve farklı performans-karmaşıklık dengesi sunar. Yığın tabanlı vs kayıt tabanlı VM karşılaştırmasında çalışma prensibinden başlamak gerekir. Yığın tabanlı VM, tüm işlemleri bir yığı (stack) üzerinden yürütür. İki sayıyı toplamak için her ikisi de yığına itilir, ADD komutu ikisini çıkarır, toplar ve sonucu yığına geri iter. JVM (Java Virtual Machine) ve CPython (Python'un referans uygulaması) bu modeli kullanır. Bytecode talimatları genellikle kısa ve tekdüzedir; çünkü işlenenleri açıkça belirtmeye gerek yoktur, yığının tepesi her zaman kaynak olarak kullanılır. Kayıt tabanlı VM ise CPU mimarisini daha yakından taklit eder. Her talimat hangi kayıttan okuyacağını ve hangi kayıda yazacağını açıkça belirtir. Lua 5.0 bu geçişi teorik olarak belgeleyerek gerçekleştirdi; Dalvik (Android'in eski Java VM'i) de bu yaklaşımı benimsedi. Yığın tabanlı vs kayıt tabanlı VM karşılaştırmasının pratik boyutu şudur: Yığın tabanlı modelde bytecode daha kompakttır; aynı işlemi gerçekleştirmek için daha az bayt harcanır. Ancak her aritmetik işlem için birden fazla yığın manipülasyonu gerekir. Kayıt tabanlı modelde talimatlar daha büyüktür (her talimat işlenen kayıt numaralarını taşır), ancak dispatch sayısı azalır; bir işlemi tamamlamak için daha az talimat gerekebilir. Performans açısından değerlendirme basit değildir. Lua'nın kayıt tabanlı VM'ye geçişi hız artışı sağladı, ancak bu fark interpreter'ın genel tasarımına, JIT derleyici varlığına ve hedef donanıma göre değişir. JIT derleyicisi devredeyken her iki modelin de native kod ürettiği düşünüldüğünde fark pratik açıdan azalır. Derleyici karmaşıklığı ise başka bir boyut. Kayıt tabanlı bytecode üretmek daha karmaşık bir derleyici arka ucu gerektirir; kayıt atama problemi (register allocation) çözülmesi gereken ek bir adım ekler. Yığın tabanlı bytecode üretmek görece daha kolaydır. Eğitim ve araştırma amaçlı VM yazmak isteyenler için yığın tabanlı model daha anlaşılır bir başlangıç noktasıdır. Üretim performansını maksimize etmek ve JIT entegrasyonu planlanıyorsa kayıt tabanlı mimari daha avantajlı zemin sunar.