Bellek nereye gidiyordu
Ekran kartı belleği 3,9 GB'tı. Dört kök sebep bulundu, 1,6 GB'a indi. Hiçbiri tahminle bulunmadı.
Sorun
Şehirde gezerken bellek 3,9 GB gösteriyordu. Bütçe 2 GB. Üstelik sahnede henüz ne karakter vardı, ne düşman, ne efekt.
Sezgi “çok bina var” diyordu. Ölçüm başka söyledi.
Dört kök sebep
Gölge kopyaları. Her binanın gölgesi için ayrı bir kopya tutuluyordu. Gölge çizimi için ayrı bir kopyaya gerek yok — asıl model kullanılabiliyor.
Kalabalık dizim payı. Aynı modelden çok sayıda kopya dizerken her grup için sabit bir alan ayrılıyordu. Grup küçük olsa da alan tam açılıyordu.
İçe aktarma ayarı eski dosyalara işlemiyordu. Projeye “her doku en fazla bin yirmi dört piksel olsun” kuralı konmuştu. Bu kural yalnız yeni gelen dosyalara uygulanıyor; kural konmadan önce girmiş dokular dört bin piksel olarak duruyordu.
Sıkıştırılmamış maskeler. Yol ve zemin verisi taşıyan resimler bilerek sıkıştırılmıyor — sıkıştırma kanalları birbirine bulaştırıp veriyi bozar. Ama sıkıştırılmayan resim bellekte tam boy durur.
Sonuç
| önce | sonra | |
|---|---|---|
| toplam bellek | 3.875 MB | 1.634 MB |
| doku | 1.237 MB | 579 MB |
| kare hızı | 254 | 357 |
| çizilen üçgen | 5,02 M | 3,69 M |
Dördü de ayrı ayrı ölçüldü. Hiçbiri “şu olabilir” diye düzeltilmedi.
Ders
Bu turda sekiz kez ölçüm aracının kendisi suçlu çıktı, kodun değil.
Ekran yenileme sınırı açık kaldığı için kare hızı sabit görünüyordu. Pencere boyu değiştiği için iki ölçüm karşılaştırılamıyordu. Bir kez de araca verilen ayar hiç uygulanmadı; sonuç değişmeyince “düzeltme işe yaramadı” sanıldı.
Kural şu oldu: bir ölçüm beklenmedik çıktıysa önce ölçüm aracından şüphelen.