PGO ölçümlerini yaparken bilgisayarınızda ne yaptığınız, optimizasyonun sonucu üzerinde hiçbir etki yapmamalıdır. PGO'nun yaptığı, belirli bir veri kümesi için koddaki sıcak yolları bulmak için ölçümleri kullanmak ve bu bilgiyi, bu veri kümesi için programı mümkün olduğunca hızlı hale getirmek için ve bu yolu sıcak olan ve diğer programlardan bağımsız olmayan bir şekilde kullanmaktır. bilgisayarda çalışıyor.
Bazı şeyleri açıklamak için, kodu optimize ederken alım satım işlemleri yapılır. İyileştirme, kodun bazı bölümlerinde daha yüksek olacak ve hangi kod dönüşümlerinin kullanıldığına ve nerede uygulandıkları ile bağlantılı olarak diğerlerine göre daha düşük olacaktır. Daha iyi bir nihai sonuç elde etmek için, kodda daha az çalıştırılan kodda daha küçük iyileştirmelerle (soğuk kod) yaşayabileceğiniz bir çok kod (derleyici lingoda) kodunda yüksek iyileştirmeler olmasını istiyorsunuz. Normal olarak, programın bu sıcak kısımlarını tanımlamak ve bu parçaları olabildiğince hızlı hale getirecek şekilde optimizasyonları uygulamak için bir dizi sezgisel yöntem kullanılır. Bu yaklaşımdaki sorun, buluşsal yaklaşımın, programın pratikte nasıl kullanılacağı hakkında bir şey bilmemesi ve sıcak kodu soğuğu yanlış tanımlayabilmesidir.
Profil yönlendirmeli en iyi duruma getirme (PGO), derleyicinin gerçek uygulamalardan verileri kullanarak kodun sıcak bölümlerini bulmasına yardımcı olan bir yöntemdir. İlk adım olarak, derleyiciye kodun pratikte nasıl yürütüldüğünü ölçmek için programın aletli bir sürümünü oluşturmasını söylersiniz, genellikle döngülerdeki yineleme sayısını saymak için sayaçlar eklenir ve if-statement'da hangi dal seçilir. İkinci adım, enstrümantasyon programını gerçek veriler üzerinde çalıştırmaktır. Programın sonunda program, eklenen tüm sayaçların değerlerini çıkarır ve kod ile sayaçları eşleştirerek programın hangi bölümlerinin sıcak olduğunu (yüksek sayılar) ve soğuk olanları (düşük sayılar) görebilmek mümkün olur. Sonunda program derlenmiş, ancak bu kez programın profili ile anlaşıldı. Bu, derleyicinin hangi parçaların daha hızlı olması gerektiğini tahmin etmesine gerek olmadığını ve profilde daha yavaş olabileceğini düşündürmektedir.
Doom tamam, çok fazla CPU yemeyecek :) –
Şüphe duymadan, üzgün olmaktan daha güvenli: diğer bilgisayarınızda çalın –
Git ve öğrenin. ;-) –