Hafıza kullanımı

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Deneyiminize eklediğiniz her bina ve senaryo bileşeni bellek tüketir.Hafıza kullanımı motor sınırlarına ulaştığında, kullanıcının cihazı veya sunucusu çökebilir, bu yüzden hafıza kullanımını aktif olarak izlemeniz ve optimizasyon için eylemler almanız gerekir. Geliştirici konsolu hafıza kullanımını izleme için iki araç sağlar, şunlar da dahil:

  • Hafıza — Önbellek kullanımını, özelleştirilmiş bileşenlerinizin ve motorun iç işlemlerinin de dahil olduğu kullanım kategorileriyle gerçek zamanlı olarak görüntüleyin.

  • Luau yığını — Yazılımlarınıza verilen bellek ayrımına işaret eden yığın üzerinde anlık görüntüler oluşturunBu araç, nesne türleri ve motor sınıfları gibi farklı perspektiflerden mevcut bellek dağılımını ve sorunlarını tanımanıza yardımcı olmak için çeşitli bellek dağılımı görüşleri sağlar.Ayrıca, zaman içinde bellek kullanımındaki farklılıkları karşılaştırmak için çok sayıda yer imi oluşturmanıza izin verir.

Aşağıdaki yöntemlerden herhangi birini kullanarak test veya canlı deneyim oturumu sırasında konsolu açabilirsiniz:

  • Basın F9.
  • Sohbete /console tipi yazın.
  • Deneyim menüsünü kullanın:
    1. Deneyim içindeki Roblox Menüsü açın.

    2. Ayarlar sekmesini seçin.

    3. Aşağıya kaydırın Geliştirici Konsolu ve 'a tıklayın.

Hafıza

Hafıza aracı gerçek zamanlı hafıza kullanımını sınıflandırır ve görüntüler.Her kategorinin MB'sinde bellek kullanımını görüntüler ve zaman içinde kullanım değişikliği üzerine bir grafik oluşturur.

Hafıza atamasını görüntülemek için:

  1. Açın Geliştirici Konsolunu .

  2. Araçların bırakılmasını genişletin ve Hafıza seçin.

    Dropdown menu of all Developer Console tools with the Memory option highlighted for selection.
  3. Müşteri-sunucu menüsünü genişletin ve Müşteri veya Sunucu seçin.

  4. Hafıza kullanımı kategorilerini ve öğelerini gezin.Aşırı kullanım modelini görmek istediğiniz kategoriler veya öğeler için, kategoriyi genişleterek grafiği görüntüleyin.

    • Çekirdek Hafıza — Motorun çekirdek yapı süreçlerinin, yönlendirme, avatarlar ve GUI (Grafik Kullanıcı Arayüzü) öğeleri dahil olmak üzere hafıza kullanımı, doğrudan kontrolünüz olmayan.

    • Deneyiminizi nasıl oluşturduğunuza bağlı olarak yerleştirilen Hafıza Belleği — Deneyiminize, modeller, arazi, parçalar, senaryolar ve deneyiminize eklediğiniz diğer tüm özel öğeler dahil olmak üzere deneyiminiz üzerine dayalı bellek kullanımı.

      KategorilerAçıklama

      HttpCache Yayınlandığı yer: Yayınlandığı yer: Değiştir

      Roblox sunucularından yüklenen varlıklar (resimler, örüntüler vb.) ve şimdi hafızada bir cache'de tutuluyor.
      Instanslar Instances yerine.
      İşaretler İstisnalar arasında ateş eden sinyaller (bir istisna bir başka durumüzerinde bir olay tetiklemek için bir istisna üzerinde ateş ediyor).
      LuaHeap Lua堆堆içi Hem çekirdek kodlarının (Roblox istemcisi ile gönderilen kodlar) hem de özel kodların belleği.
      Komut Dosyası Luau Komutları.
      Fizik çarpışması Fizik simülasyonları için çarpışma verileri.
      Fizik Parçaları Fizik geometri ve kinetik.
      GrafikSolidModeller Solid modelleri göstermek için grafik verileri.
      Grafik Ağı Parçaları MeshPart nesneler için grafikler.
      Grafik Parçacıklar Parçacık sistemleri için grafik.
      Grafik Parçaları Parçalar için grafik.
      GrafiklerUzaysalHash Genel renderlama.
      Grafik Bölgesi Arazi için grafikler.
      Grafik Doku Doku belleği.
      Grafik Doku Karakteri Karakterler için doküman hafızası.
      Sesler Hafızada sesler.
      Yayınlanan Sesler Ses yayını.
      Arazi Vokseilleri Arazi vokseleri.
      AraziFiziği Arazi fiziği.
      Arayüz Sıradan GUI öğeleri tarafından kullanılan bellek.
      Animasyon Pozlar ve avatar animasyonları için KeyframeSequence önbelleştirilmiş veriler gibi animasyon verileri için kullanılan bellek.
      Navigasyon Destekleyici yapılar tarafından kullanılan hafıza PathfindingService .
    • Takip edilmeyen hafıza — Sistemin belirli bir kaynakkolayca atfedemeyeceği hafıza tahsisi.

    • PlaceScriptMemory — Bireysel kodların ve özel bellek etiketlerinin genel bellek kullanımına nasıl katkıda bulunduğuna dair bilgilerle kodlarınızın bellek kullanımı.

    • CoreScriptMemory — Doğrudan kontrolünüz olmayan iç motor kriptleri tarafından bellek kullanımı

    Bu kategoriler arasında, PlaceMemory ve PlaceScriptMemory en önemli olanlarıdır, çünkü bina ve kodlama seçimlerinizin bellek tüketimini ve optimizasyon için potansiyel alanları nasıl etkilediğini anlamanıza yardımcı olurlar. Yerleşim Hafıza Belleği hakkında daha fazla bilgi için, fotoğraf çekmek ve farklı metriklerle bellek dağılımını analiz etmek için Luau yığını aracını kullanabilirsiniz.

Luau yığını

Luau yığını aracı, değişkenleri, tabloları, fonksiyonları ve diğer çalışma anı veri yapılarını depolamak için Luau kaynaklarına atıfta bulunan bellek ataması üzerinde yapılan görüntüler oluşturmanıza izin verir Luau yığını .Bu araç, nesne türleri ve motor sınıfları gibi farklı perspektiflerden bellek dağılımını ve sorunlarını tanımanıza yardımcı olmak için çeşitli bellek dağılımı görüşleri sağlar.Ayrıca, zaman içinde bellek kullanımındaki farklılıkları karşılaştırmak için çok sayıda yer imi oluşturmanıza izin verir.

Kareler oluştur Create snapshots

Hafıza atamasının bir görüntüsünü oluşturmak için:

  1. Açın Geliştirici Konsolunu .

  2. Araçların bırakılmasını genişletin ve LuauHeap seçin.

    Dropdown menu of all Developer Console tools with the LuauHeap option highlighted for selection.
  3. Müşteri-sunucu menüsünü genişletin ve Müşteri veya Sunucu seçin.

  4. Yaratma Snap'ı oluştur düğmesine tıklayın.

Hafıza kullanımını analiz et

Araç, farklı görünümlere dayalı olarak Luau hafıza atamasını görüntülemek için seçebileceğiniz beş görünüm sağlar:

  • Grafik — Her bir düğümü belleğe ayrılan bir nesneyi temsil eden birleşik bir bellek kullanım ağacı gösterir
  • Nesne Etiketlerifunction , table ve thread gibi çalışma süreleri tarafından bellek boyutlarını ve sayılarını gösterir.
  • Hafıza Kategorileri — Motor tarafından atanmış hafıza kategorileri tarafından hafıza boyutlarını ve sayılarını gösterir.Motor, dağıtım sırasında bir nesneye bir bellek kategorisi atar.
  • Nesne Sınıfları — Yazılımlarınızın kullandığı ve istemci sınıfları tarafından depolandığı bellek boyutlarını ve sayılarını gösterir, örneğin EnumItem , Animation , CFrame .
  • Eşsiz referanslar — Veri modelinde ebeveyni olmayan sayıları ve sadece yazılımlar tarafından erişilebilen tüm yolları gösterir, böylece instans objesini sabitleyen tüm yollar.

Grafik

Grafik görünümü, tüm Luau yığını görünümleri arasında en ayrıntılı ve karmaşık görünümdür.Her bir düğümü belleğe ayrılan bir nesneyi temsil eden bir toplu hafıza kullanım ağacı gösterir.Ağaç, nesnelerin birbirine nasıl bağlandığını ve nesne referansları arasındaki en kısa yolu nasıl belirlediğini gösterir.Aşağıdaki bellek boyutu sütunlarına sahiptir: Boyut — Kendi bellek kullanımı artı veri yapısı içindeki içeriklerin bellek kullanımı.Kendisi — Veri yapısı için doğrudan atanmış bellek, içerdiği herhangi bir içeriğin bellek kullanımını dışlayarak.

An example Graph view

Ağaç grafiğinin kökü registry , tüm motor ve Luau referanslarını depolayan ve sinyallerle bağlantılı işlevler, modül kütüphanesi tarafından döndürülen tablolar ve küresel işlevler, tablolar ve sınıflar gibi tüm motor ve Luau referanslarını depolar.Genellikle şu yaygın girişleri ebeveyn olur:

  • Module @Path.To.Module bir modül kripti tarafından döndürülen tablodur.
  • name:123 =Path.To.Module belirlenmiş bir senaryonun içindeki bir işlevdir.Anonim işlevlerin isimleri yoktur.Üst düzey düğüm genellikle küresel senaryo işlevine işaret eder.Anonim işlevlerin isimleri yoktur.Örnek: :1= Workspace.[Username].Animate .
  • upvalue yakalanmış işlevler için bir referanstır. Daha fazla bilgi için yerel ölçek yakalama bakın.
  • env bir işlevin çevresini ifade eder. Çoğu durumda, bir senaryonun küresel ölçeğini temsil eden bir tablodur.
  • globals bir işleğin çevresine atıfta bulunur.
  • [key] tablo anahtarları olarak hizmet eden nesneleri temsil eder.
  • array bir dizi temsil eder.
  • stack tüm işlev yerelleştirmelerini depolayan dizeye işaret eder.
  • constants işlevlerin kullandığı tüm sabit değerleri temsil eder.

Hafıza kategorileri

Hafıza Kategorileri görüntüsü, motorun dağıtım sırasında nesnelere atadığı hafıza kategorileri tarafından hafıza boyutlarını ve sayılarını gösterir.Varsayılan olarak, hafıza kategorisi, senaryo ile aynı ada sahiptir veya debug.setmemorycategory fonksiyonunu kullanarak özel hafıza kategorisi adları atayabilirsiniz.

Eşsiz referanslar

Eşsiz referanslar görüntüsü, veri modelinde bir ebeveyni olmayan ve yalnızca yazılımlar tarafından erişilebilen instansların bellek kullanımını gösterir ve instans nesnesini sabitleyen tüm yolları.Bu görünümün iki metriği vardır:

  • Sayı — Aynı yoldan erişilebilen aynı isimdeki örnek sayısını gösterir, örneğin aynı tabloda çok sayıda örnek Dragon adında.
  • Toplam İstisnalar — Tüm parçalar, senaryolar ve ses nesneleri gibi köklerin içindeki toplam nesne sayısını gösterir, bir durumoluşturan nesne.
An example Unique Reference view

Bu görüş, artık ihtiyacınız olmadığında bağlantılı olmayan örnekleri tanımlamak için yararlıdır.Bu görünümde çok fazla beklenmedik durum görürseniz, onları tutan yolları kontrol edin ve gerekli olup olmadıklarını değerlendirin.