Erken eniyileme (prematüre optimizasyon) yazılım tasarımı yapılırken başarımın gözönünde bulundurulmasına verilen addır. Bu yaklaşımda program tasarlanırken nerede yavaş olabileceği gözönünde bulundurulur ve tasarım sürecinde programın hızlı olmasına çaba sarfedilir.

Erken iyilemenin tersi ardıl eniyilemedir. Bu yaklaşımda program başarım şartı olmadan tasarlanır ve programlanır. Elde edilen program yavaş fakat gereksinimleri sağlayan durumdadır. Eniyileme işlemi bu program üzerinde yapılır ve hız kazanımı sağlanacak noktalar yeniden yazılır.

Donald Knuth[1] ve Charles Hoare gibi tanınmış bilgisayar bilimcileri sonradan yapılan eniyilemenin daha yararlı olduğunu belirtmiştir. Savları programların başarım tereddütleriyle tasarlanmasının onları daha karmaşık hale getirdiği, tam olarak sorunların nerede olacağının kestirilememesidir. Sonradan yapılan geliştirmeler elde olan kodda sorun buldukları için sadece sorunlu kısımlar değiştirilerek verimli bir kod elde edilebilir ve programın geri kalanı basit yapısını koruyabilir.

Notlar değiştir

  • ^"Küçük iyileştirmelerin %97'sini unutmak gerek. Erken eniyilendirme tüm kötülüklerin anasıdır." (Donald Knuth, Code Complete)