v1.0
EklentiKararlı

Performans, Veri ve Yedekleme

Chunk hazırlama, ada silme bütçeleri, seviye hesaplama, kalıcı veriler ve yedekleme stratejisi.

v1.0·Minecraft 1.21.11·Paper·Java 21

Ada oluşturma ve chunk hazırlama

Yeni ada teleportunda görüş alanındaki çok sayıda chunkın tek anda üretilmesini azaltmak için sıradaki ada alanları küçük asenkron partilerle hazırlanabilir. islands.pregeneration altında şunlar ayarlanır:

  • enabled: Ön hazırlamayı açar.
  • islands-ahead: Kaç gelecek ada alanının hazırlanacağı.
  • chunk-radius: Merkez çevresindeki yarıçap; -1 Paper view-distance kullanır.
  • chunks-per-batch: Bir partide başlatılan iş sayısı.
  • max-in-flight: Aynı anda bekleyebilen async chunk isteği.
  • tick-interval: Partiler arasındaki tick aralığı.

Yalnız ana dünya önceden hazırlanır. Nether ve End ilk kullanımda asenkron hazırlanır. Ön üretim CPU dalgasını zamana yayabilir ancak daha fazla disk alanı tüketir.

Ada silme

Silme işi blocks-per-tick ve max-millis-per-tick olmak üzere iki bütçeyle ilerler. Varsayılan olarak yalnız satın alınmış mevcut border alanı taranır ve üretilmemiş chunklar yüklenmez. scan-maximum-border: true, border dışında yönetici araçlarıyla oluşturulmuş yapıları da arayabilir fakat daha pahalıdır.

Silme kaydı fiziksel temizlikten önce diske yazılır. Sunucu kapanırsa görev sonraki açılışta tekrar kuyruğa alınır. Temizlik oyuncunun yeniden oluşturma cooldownından ayrı yürür.

Ada seviyesi

config/block-levels.yml içindeki material değerleri dünyada yerleştirilmiş bloklardan seviye üretir. Container içindeki itemlar ve oyuncu envanteri sayılmaz. TekBlok merkezi ve etkin destek koordinatı hariç tutulur.

Normal kırma, koyma, patlama ve piston olayları puan farkını doğrudan uygular. Yoğun değişiklikler gecikmeli tek kayıtta birleştirilir. Seyrek audit, harici pluginlerin olay üretmeden yaptığı değişiklikleri kontrol eder; var olmayan chunkları üretmez ve snapshot sayımını ana thread dışında yürütür.

Kalıcı veriler

Dosyaİçerik
data/islands.ymlAda UUID/indeks, sahip, üyeler, banlar, trust, kırma, seviye, upgradeler, home, warp, silme durumu.
data/players.ymlOyuncu UUID ve dil tercihi.
data/player-progress.ymlKişisel toplam, tier ve material kırma sayaçları.

YAML verileri tek iş parçacıklı arka plan yazıcısıyla geçici dosyaya alınır ve mümkün olduğunda atomik taşıma ile değiştirilir. Bukkit dünya değişiklikleri rastgele async threade gönderilmez.

Performans beklentisi

Bu mekanizmalar ana thread yükünü sınırlamayı hedefler; sabit TPS/MSPT garantisi vermez. Sonuçlar view-distance, pregeneration yarıçapı, disk, işlemci, eşzamanlı oyuncular, entity yoğunluğu ve diğer pluginlere bağlıdır. Değişiklikleri kendi üretim donanımınıza yakın bir test sunucusunda Spark ile ölçün.