Bu sayfa İngilizce belgenin çevirisidir. Komutlar, tanımlayıcılar ve örnekler aynıdır. Çalışma zamanı 7.24.4 · SDK 2.6.7. İngilizce kaynak
Bellek kullanımı
Durum: Güncel
Kapsam: güncel durum
Son inceleme: 2026-09-13
Sahip: ax-code çalışma zamanı
AX Code makineyi dil sunucuları, depo derlemeleri, tarayıcılar ve herhangi bir yerel model çalışma zamanıyla paylaşır. Bir TypeScript sunucusu veya Rust çözümleyicisi, AX Code arka ucunun kendisinden daha fazla bellek kullanabilir. Bu süreçler kod analizi sağlar; ses hizmeti değildir. Süreç RSS değerlerini toplamak paylaşılan sayfaları birden fazla kez sayabilir.
Profiller
AX_CODE_MEMORY_PROFILE şunları kabul eder: auto (varsayılan), low veya normal. auto içinde, en fazla 8 GiB fiziksel RAM bildiren bir konak low seçer; diğer konaklar normal seçer. Geçersiz değerler otomatik algılamayı kullanır. Algılama boş RAM’i veya bir kapsayıcı bellek sınırını değil, fiziksel konak RAM’ini kullanır; kısıtlı bir VM/kapsayıcıda gerektiğinde low değerini açıkça seçin. Değişkeni AX Code başlamadan önce ayarlayın; zaten çalışan bir arka ucu yeniden yapılandırmaz.
AX_CODE_MEMORY_PROFILE=low ax-code
PowerShell:
$env:AX_CODE_MEMORY_PROFILE = "low"
ax-code
| Davranış | Normal | Düşük |
|---|---|---|
| Spekülatif dil sunucusu başlatması ve okuma ön ısıtması | AX_CODE_LSP_PREWARM=1 ile isteğe bağlı |
Ön ısıtma değişkeni ayarlı olsa bile atlanır |
| LSP istemcisi başına önceki kaynak metin önbelleği | 16 MiB tutulan içerik muhasebesi | 4 MiB tutulan içerik muhasebesi |
| Eşzamanlı LSP başlatması | Mevcut sunucu zamanlaması | Arka uç süreci başına bir seferde bir başlatma |
| Eşzamanlı anlamsal işlemler | Mevcut sunucu bütçeleri | Arka uç süreci başına iki beklenen anlamsal işlem, artı mevcut sunucu bütçeleri |
| Sağlıklı boşta dil sunucuları | Mevcut yaşam döngüsü | Beş boşta dakikadan sonra kapanmaya uygun, yaklaşık dakikada bir denetlenir |
Dil sunucuları her iki profilde de varsayılan olarak isteğe bağlı başlar. Başlatma ve olağan dosya okumaları spekülatif anlamsal ön ısıtmayı tetiklemez. Açık anlamsal gezinme, tanılar ve dizinleme gerekli analizi yine başlatır; bu yüzden ilk anlamsal istek daha uzun sürebilir. Yeterli boşluğu olan bir konakta spekülatif başlatma/okuma ön ısıtmasını geri getirmek için başlamadan önce her iki değişkeni ayarlayın:
AX_CODE_MEMORY_PROFILE=normal AX_CODE_LSP_PREWARM=1 ax-code
Yalnızca tam 1 değeri spekülatif ön ısıtmayı açar; low onu her zaman bastırır. Bu ayar mevcut sunucuları sonlandırmaz ve LSP başlatmasına genel bir yasak değildir: tanı gerektiren düzenlemeler ile açık anlamsal/dizinleme işlemleri dil sunucularını kullanmaya devam eder. Düşük kipteki boşta geri alma ayrı kalır.
Kaynak önbelleğinin ayrıca 1.000 girdi sınırı vardır. Muhasebesi tutucu bir dize/anahtar payı içerir; bir V8 yığını veya RSS sınırı değildir. Sığmayan bir dosya yine de tam güncel içeriğini dil sunucusuyla eşitler. Önbellek tahliyesi, bir isteğin ihtiyaç duyabileceği bir belgeyi kapatmaz.
Düşük kip analizi atlamak yerine işi kuyruğa alır. İlk kullanım veya boşta kapanmadan sonraki kullanım daha uzun sürebilir. Seçili/kuyruktaki istemciler, bekleyen altta yatan RPC’ler ve tanı beklemeleri boşta kapanmadan korunur. Zaman aşımına uğramış bir istek sunucu tarafı işi çalışır bırakabilir: iki beklenen işlem, dil sunucularının içinde yalnızca iki hesaplama olacağını garanti etmez. Tanı envanteri, boşta geri almadan sonra düşürülmüş olarak işaretlenir; çünkü bir dosyayı yeniden başlatmak eski çalışma alanının tam kapsamını kanıtlayamaz.
Bu sınırlar her AX Code sürecinin içinde geçerlidir. Toplam RAM’i sınırlamaz, ayrı AX Code örneklerini koordine etmez, dil sunucusu yığınlarını sınırlamaz veya bir derleyici/tarayıcı/yerel modeli denetlemez. Model seçimi, gerekli istem bağlamı ve doğrulama komutları değişmeden kalır.
Oturum ve kanıt saklama
TUI, görüntülenen oturum için ağır döküm olaylarını tutar. Etkin olmayan oturumlar özet, durum ve bekleyen onayları/soruları saklar; onları açmak kayıtlı geçmişi SQLite’tan yeniden yükler. Normal görüntü penceresi 100 ileti ve 16 MiB serileştirilmiş yük bütçesidir. Eski tamamlanmış iletiler önce bırakılır. En yeni bölünemez ileti ve kurtarılan Geri Al/Geri Yükle geçmişi yumuşak bütçeyi aşabilir; TUI bir gösterge görüntüler. Bunlar izdüşüm sınırlarıdır; kalıcı oturum geçmişinin veya model bağlamının sınırları değildir.
V8 yığını sert sınırına yaklaştığında döküm bütçesi otomatik daralır (yüzde 90 yığın kullanımında 2 MiB tabana kadar); böylece tutulan küme, süreç FatalProcessOutOfMemory noktasına ulaşmadan önce boşalır. Yüzde 80’i geçince TUI ayrıca /compact veya yeniden başlatma öneren bir uyarı gösterir. Baskı tam bir GC’den sonra düzelir, ancak zaten tahliye edilmiş geçmiş yeniden yüklenene kadar yok kalır.
Üst iletisinden önce gelen parçalar sınırlı bir bekleyen alan kullanır (128 ileti kimliği / 1 MiB). Bekleyen içerik bırakılmak zorundaysa TUI kayıtlı geçmişten yeniden yükleme sunar. Tahliye edilmiş iletilere geç gelen olaylar yetim parçaları kalıcı olarak yeniden oluşturamaz.
Kanıt önbelleği varsayılan olarak sınırlı belleğe ayarlıdır (örnek başına 128 girdi / 4 MiB serileştirilmiş değer). RocksDB isteğe bağlı kalır; yalnızca önbellek arka ucunu değiştirmek model araç çağrılarını azaltmaz. Bkz. Kanıt önbelleği.
Arka plan komut çıktısı
Okunmamış arka plan çıktısı, biten her kabuk için çok megabaytlık JavaScript dizelerini tutmak yerine özel geçici dosyalar kullanır. Her dosya 2 MiB UTF-8 halkasıdır; bu sınırın ötesindeki en eski okunmamış çıktı düşer ve etiketlenir. En fazla 32 halka dosyası süreç başına en çok 64 MiB ayırır. Disk yuvaları dolduğunda en eski bitmiş makara sona erebilir; etkin kabuk sahipliği tahliye edilmez. Okumalar tutulan okunmamış çıktıyı artımlı döndürür ve disk yuvasını bırakır.
Kayıt defteri oturum başına 16, süreç başına 32 etkin kabuğa izin verir ve oturum başına en fazla 16 / süreç başına 64 bitmiş kayıt tutar. Bitmiş çıktı 30 dakika sonra sona erer (erişimde ve yaklaşık dakikada bir denetlenir). Komut/açıklama listeleri 8 KiB / 1 KiB ile sınırlı önizlemelerdir; yürütülen komut değişmez. Gözlemci yeniden oynatmasının kabuk başına 64 KiB ve 128 kayıt ile süreç genelinde 2 MiB bayt bütçesi gibi ayrı sınırları vardır; eksik yeniden oynatma etiketlenir.
bash_output çıktı bütünlüğünü gerçek süreç çıkış durumundan ayrı raporlar. Düşen, süresi dolan veya okunamayan çıktı, komut sıfır koduyla çıksa bile eksik doğrulama kanıtıdır. Bir çıktı süzgeci kullanıldığında bu uyarılar görünür kalır. Eksik bir kayıt, zaten tüketildiği veya tahliye edildiği anlamına gelebilir; kullanılamayan çıktı bir denetimin geçtiğinin kanıtı değildir.
Dosyalar POSIX üzerinde özel, sürece ait geçici bir dizin (0700) ve 0600 dosyalar kullanır. Okumalar, oturum kaldırma, saklama temizliği ve normal süreç çıkışı sahip olunan dosyaları bırakır. Makara, çökmede dayanıklı oturum deposu değildir. Zorla sonlandırma veya bir çökme geride özel bir geçici dizin bırakabilir; otomatik süreçler arası toplama uygulanmamıştır, bu yüzden 64 MiB sınırı birikmiş çökme artıklarını değil geçerli süreci anlatır. Dosya sistemi temizleme hataları raporlanır ve başarısız dosyanın kota rezervasyonunu serbest bırakmaz. Eşzamanlı sınırlı dosya G/Ç sınırsız yazma kuyruklarından kaçınır ancak yavaş bir geçici dosya sisteminde gecikme ekleyebilir.
İş yükü seçmek
Kısıtlı konaklar için önce bir bulut sağlayıcısı, bir etkin kodlama oturumu ve küçük bir depo kullanın. Büyük derlemeleri ve ek ajan oturumlarını yalnızca makinede boşluk varken çalıştırın. Yerel çıkarım ağırlıklar, KV önbelleği/bağlam ve çalışma zamanı yükü için ayrı bir bütçe ister; bulut sağlayıcı donanım rehberi ona uygulanmaz.
Olağan kullanım için paketlenmiş CLI’yi kullanın; pnpm run dev farklı bir başlatma/modül yükleme maliyetine sahip katkıda bulunan kaynak iş akışıdır. AX Code’u dil sunucusu ve derleme alt süreçleriyle birlikte Activity Monitor’da veya platform süreç izleyicisinde inceleyin. Azaltılmış bir önbellek sınırı fiziksel bellekte sabit bir azalma oluşturmaz.
Bellek değişikliklerinin belirleyici saklama ve anlamsal eşdeğerlik sınamaları vardır. Fiziksel 8 GB Mac üzerinde bir yük sınamasıyla nitelendirilmemiştir. Düşük kip, rastgele bir projenin 8 GB makineye sığacağının garantisi değildir.