Oyun Sahnesinde Performans Optimizasyonu: Profiler Okumak
# Oyun Sahnesinde Performans Optimizasyonu: Profiler Okumak
Oyunun FPS'i aniden düşüyor ama neden? Hangi sistem yavaşlatıyor? Profiler bu soruların cevabını verir. Profiler, kodun her bölümünün ne kadar zaman aldığını ölçer.
Unity'de profiler açmak çok basit. Window menüsünden Analysis > Profiler seçin. Oyunu Play moduna alıp profiler verisi toplamaya başlayın.
Profiler üç ana bölüme ayrılır:
- CPU Usage: CPU'nun ne kadarını hangi sistem kullanıyor
- GPU Usage: Grafik kartının yükü
- Memory: Bellek tüketimi
CPU grafiğine bakın. Yeşil = iyi, sarı = uyarı, kırmızı = sorun. Grafik altında detay listesi var. Her satırda işlemin adı ve aldığı zaman yüzdesi yazıyor.
Örneğin:
- Rendering: %35
- Physics.Simulate: %28
- Scripts: %22
Eğer Physics.Simulate çok yüksekse, sahneye çok fazla rigidbody var demektir.
En yüksek yüzdeyi tıklayın. Alt sekmede o işlemin alt detayları çıkacak. Örneğin Physics altında hangi collision kontrolleri yavaş, onu görebilirsiniz.
Sahneye 500 küçük kutu koydunuz ve hepsi rigidbody. Profiler Physics'in %45 aldığını gösteriyor.
1// KÖTÜ: Tüm nesneler fizik simülasyonunda2for (int i = 0; i < 500; i++) {3GameObject cube = Instantiate(cubePrefab);4Rigidbody rb = cube.AddComponent<Rigidbody>();5rb.useGravity = true;6}78// İYİ: Statik nesneleri fizikten çıkar9for (int i = 0; i < 500; i++) {10GameObject cube = Instantiate(cubePrefab);11if (i < 450) { // Sadece 50 tanesi dinamik12Rigidbody rb = cube.AddComponent<Rigidbody>();13rb.useGravity = true;14} else {15cube.GetComponent<Collider>().enabled = true; // Statik16}17}Beklenen çıktı: Physics kullanımı %45'ten %12'ye düşer.
CPU sorun değilse GPU'ya bakın. Rendering çok yüksekse:
- Çok fazla draw call var
- Yüksek çözünürlüklü texturelar
- Karmaşık shader'lar
GPU profiler her frame kaç draw call yapıldığını gösterir.
Profiler okumak öğrenince, optimizasyon çok kolay olur. Her değişiklikten sonra profiler'ı kontrol edin. Gerçek sorun bulduktan sonra çözüm uygulamak zaman kaybetmez.
0 yorum