Özet - Performance
- Oyun Geliştirme kursu
- Uzman
- Ders 6/47
- 4 dk
Performance optimizasyonunu bir özet görevle pekiştirirsin.
Performans optimizasyonu özeti
Oyun performansını artırmak önce Profiler ile CPU ve GPU darboğazını tespit etmekle başlar. CPU yükünü hafifletmek için nesneler Static/Dynamic Batching ile birleştirilir ve Object Pooling ile çöp toplayıcı (GC) duraksamaları önlenir. GPU yükünü düşürmek için mesafeye göre LOD grupları kullanılır ve engellerin arkası Occlusion Culling ile elenir.
// Temel optimizasyon adimlari:
// 1. Profiler ile olc (tahmin etme)
// 2. Batching ve Pooling ile CPU'yu rahatlat
// 3. LOD ve Occlusion ile GPU'yu rahatlatBu sistemler birlikte çalıştığında en zorlu sahneler bile akıcı ve yüksek kare hızında çalışır.
Uygulama Performans özetini formatla
drawCalls (120) ve pooledObjects (50) değerlerini kullanarak Console.WriteLine ile konsola "Optimizasyon: 120 Draw Call | 50 Havuz Nesnesi" çıktısını yazdır.
Başlangıç kodu
using System;
class PerformanceSummary
{
static void Main()
{
int drawCalls = 120;
int pooledObjects = 50;
// Performans metriklerini formatlayarak yazdir
}
}Örnek çözüm
using System;
class PerformanceSummary
{
static void Main()
{
int drawCalls = 120;
int pooledObjects = 50;
Console.WriteLine($"Optimizasyon: {drawCalls} Draw Call | {pooledObjects} Havuz Nesnesi");
}
}Beklenen çıktı
Optimizasyon: 120 Draw Call | 50 Havuz Nesnesi
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Aşağıdakilerden hangisi doğrudan Garbage Collection (GC) duraksamalarını engellemek için kullanılan yöntemdir?
- Mesh modellerine LOD Group eklemek
- Occlusion Culling verisi pişirmek
- Sık üretilen nesneler için Object Pooling uygulamak Doğru cevap
- Tüm materyallerin dokularını büyütmek
Açıklama: Object Pooling, nesneleri bellekten silip yeniden üretmek yerine havuzda tutarak bellek tahsisatını ve GC tetiklenmesini engeller.
2 Static bayrağı ata
// Batching optimizasyonuna dahil etmek icin static yap
gameObject.____ = true;
// Batching optimizasyonuna dahil etmek icin static yap
gameObject.isStatic = true;
Açıklama: gameObject.isStatic özelliği nesneyi static olarak işaretleyerek static batching gibi optimizasyonlara hazırlar.
3 Optimizasyon teknikleri
| Kavram | Anlamı |
|---|---|
Profiler |
Performans darboğazlarını analiz etme |
Static Batching |
Hareketsiz draw call'larını birleştirme |
Object Pooling |
Bellek tahsisi ve GC takılmasını önleme |
Occlusion Culling |
Gizli nesnelerin çizimini engelleme |