THE ORB
Studio başlatılıyor

FATAL ERROR: JavaScript heap out of memory

Bir script mevcut belleğin tamamını tüketti ve sunucuyu da beraberinde götürdü. Bir şey tutuluyor ve hiç bırakılmıyor.

groupsTüm sunucu çöküyorcodeGeliştirici gerektirir

Önce şunu yap

Hangi kaynak olduğunu ve sunucunun ne kadar süredir açık olduğunu not et. Bunun doğru düzgün bulunması gerekiyor.

bug_reportBunun yerine tüm konsolunu yapıştır

Ne anlama gelir

Node tabanlı bir kaynak, V8'in izin verdiğinden fazla bellek kullandı ve çalışma zamanı iptal etti. FXServer'da bu tüm sunucuyu götürebilir, çünkü JavaScript çalışma zamanı süreç içindedir.

Neden olur

Ne sıklıkla doğru cevap olduğuna göre sıralı.

  1. 1

    Bir sızıntı — biriken ve hiç temizlenmeyen bir şey

    Klasik olan, katılımda eklenen ve ayrılışta hiç kaldırılmayan oyuncu başına bir nesnedir. Bir saat boyunca sorunsuz görünür ve zirvede ölür.

  2. 2

    Belleğe devasa bir şey yüklemek

    Büyük bir dosyayı ya da komple bir tabloyu tek seferde bir diziye okumak.

  3. 3

    Sınırsız bir önbellek

    Sınırsız çeşitlilikte bir şeyle anahtarlanmış, hiç boşaltılmayan bir Map.

  4. 4

    Bir kez yerine olay başına kaydedilen bir dinleyici

    Her tetiklemede biriken işleyiciler.

  5. 5

    Basitçe iş yükü için fazla az bellek

    Gerçekten varsayılan heap'ten fazlasına ihtiyaç duymak.

Hangisinin seninki olduğu nasıl anlaşılır

Süreci bir saat boyunca izle. Nüfus zirveleri arasında tırmanan ve hiç inmeyen bellek bir sızıntıdır; belirli bir işlemde sıçrayan bellek o işlemdir.

Nereye bakmalı

Büyüyen her yapı: ölen kaynaktaki modül düzeyinde bir nesne üzerindeki her push, set ve [key] =.

Nasıl düzeltilir

Bağlantı koptuğunda temizle, ve her önbelleği sınırla:

on('playerDropped', (reason) => {
    const src = global.source
    delete playerState[src]        // insanların unuttuğu satır
})

Heap'i yükseltmek zaman kazandırır, bir sızıntıyı düzeltmez:

# server.cfg — geçici bir çare, çözüm değil
set node_args "--max-old-space-size=4096"

Hâlâ kendi kodunda mı takıldın?

Bu sayfa, bu hatanın genelde ne anlama geldiğini anlatır. Konsolunu Server Fixer'a yapıştır; içindeki her şeyi sıraya dizer ve önce ne yapman gerektiğini söyler. Kendin uğraşmak istemiyorsan ORBIE script'i onarır ve kaynağı sunucuna atmaya hazır geri verir.

bug_reportServer Fixer'ı aç

Bu tür bir hata için Script Optimizer script'i okur ve bunun arkasındaki kodu onarır.

Bununla birlikte gelen hatalar