Bunun partiye çok geç kaldığını biliyorum, ama zaman değişiyor ve cevaplar burada kalıyor. C ++ 11, birçoğu C ++ ve standart kütüphanesinin performansını artıracak oldukça kapsamlı değişikliklere sahip. Görünüşe göre STL veya Boost kullanmayanlar, yeni standartlara uymamaya meyilli, evdeki çözümleri önemli gelişmelerden mahrum bırakma eğiliminde görünüyorlar, elbette bu her zaman böyle değil.
EA'da kısa bir süre dışında 90'lı yılların ortasından günümüze her projede STL kullandım. STL karşıtı tarafın kullanmamak için bazı marjinal sebepleri olduğunu düşünüyorum. Bunlar büyük ölçüde gitti. Özel tahsisatçılar bir çözümdür, rezerv kullanmak başka bir şeydir ve şeyleri değerine göre geçirmemek üçte birdir, ancak bunlar oldukça basittir ve herhangi bir programcı bunları bilmelidir. Daha önemlisi, algoritmaların kullanılması olsa da. Derleyici yazarlar bir for_each () 'nin ne yaptığını tam olarak bilir ve kodu optimize edebilir. Bu bir ev haddelenmiş döngü ile gerçekleşemez. Bir const nesnesinde for_each () daha iyidir. Microsoft for_each serileştirme dahil olmak üzere birçok şekilde optimize eder. Ayrıca parallel_for_each () olan AMP kütüphanesine sahiptir. Şansınız varsa, derleyici mühendisleriyle bunun hakkında konuşun. Konsol derleyicileri, kullanılanları optimize edeceklerdir. Bir parça tavuk ve yumurta problemi. Microsoft C ++ 11 ile çok ağır gidiyor ve bir sonraki XBox farklı olmayacak. PS4 hakkında hiçbir fikrim yok, henüz bir tanesini almadık.
Özel ayırıcılar, bellek sorununu ele almanın bir yoludur, ancak başka (genellikle göz ardı edilen) bir seçenek, yeni sınıf tabanlı ve sil komutunu kullanmaktır. Büyük performans artışları bu şekilde olabilir.
Boost ve STL'nin problem çözme konusunda dar bir görüşü olduğu fikri saf delilik. STL ve Boost'taki kaç şeyin özellik ve politikalarla özelleştirilebildiğine şaşırdım. Bir örnek olarak case bağımsız dize karşılaştırması arayın.
Uzun bağlantı süreleri ve kod ihlaline ilişkin olarak, yeni harici şablon bu konuda yardımcı olmalıdır. Genel olarak, uzun derleme sürelerinin aşırı bağlanma ve pch'in yanlış kullanılmasından kaynaklandığını görüyorum.
STL'yi evde kullanmanın en zorlayıcı nedeni, STL'de size yardımcı olabilecek milyonlarca insanın bulunmasıdır. Her zaman olduğu gibi, erken optimize etmeyin ve test edin, test edin, test edin.