Doğası gereği soyutlama, hem programcıya hem de sistemin alt katmanlarına (derleyici, kütüphaneler ve çalışma zamanı sistemi) bilgi iletişimini azaltır. Soyutlama lehine, bu genellikle alt katmanların programlayıcının belirtilmemiş herhangi bir davranışla ilgisi olmadığını varsayarak, belirtilen davranışı sağlamada daha fazla esneklik sağlar .
Bu "umrumda değil" özelliğinden potansiyel bir fayda örneği veri düzenindedir. C'de (düşük soyutlama), derleyici veri düzeni optimizasyonlarında daha kısıtlıdır. Derleyici, sıcak / soğuk veya yanlış paylaşım-kaçınma optimizasyonlarının yararlı olacağını fark edebilseydi (örneğin, profil bilgileri aracılığıyla), genellikle böyle bir uygulamanın uygulanması önlenir. ("Sanki" belirtme özgürlüğü vardır, yani spesifikasyona daha soyut davranmak, ancak tüm potansiyel yan etkileri elde etmek derleyiciye bir yük getirir.)
Daha soyut bir spesifikasyon, takas ve kullanımlardaki değişikliklere karşı daha sağlamdır. Alt katmanlar, yeni sistem özellikleri veya yeni kullanımlar için programı yeniden optimize etmede daha az kısıtlıdır. Daha somut bir şartname ya bir programcı tarafından yeniden yazılmalı ya da "sanki" davranışı garanti etmek için alt katmanlar tarafından ek çaba gösterilmelidir.
Soyutlamayı gizleyen bilginin performansı engelleyen yönü, alt katmanların tipik olarak "bilmiyorum" olarak işleyeceği "ifade edemez" dir. Bu, alt katmanların optimizasyon için yararlı bilgileri tipik genel kullanım, hedefli kullanım veya belirli profil bilgileri gibi diğer araçlardan ayırt etmesi gerektiği anlamına gelir.
Bilgi gizlemenin etkisi diğer yönde de çalışır. Programcı, her ayrıntıyı dikkate almak ve belirtmek zorunda kalmadan daha üretken olabilir, ancak programcı daha üst düzey tasarım seçimlerinin etkisi hakkında daha az bilgiye sahip olabilir.
Öte yandan, kod daha spesifik olduğunda (daha az soyut), sistemin alt katmanları söylendiklerini yapmaları daha basit bir şekilde yapabilir. Kod, hedeflenen kullanımı için iyi yazılmışsa, hedeflenen kullanımına iyi uyacaktır. Daha az soyut bir dil (veya programlama paradigması) , programlayıcının uygulamayı detaylı tasarım ve belirli bir dilde alt katmanlara kolayca iletilmeyen bilgileri kullanarak optimize etmesini sağlar .
Daha önce belirtildiği gibi, ek programcı beceri ve çabası değerli sonuçlar üretebildiğinde daha az soyut dil (veya programlama teknikleri) caziptir. Daha fazla programcı çabası ve becerisi uygulandığında, sonuçlar genellikle daha iyi olacaktır. Buna ek olarak, performans açısından kritik uygulamalar için daha az kullanılan bir dil sistemi (bunun yerine geliştirme çabası veya güvenilirliği vurgulamak - sınır kontrolleri ve çöp toplama sadece programcı üretkenliği değil, doğrulukla ilgilidir, soyutlamanın programcı üzerindeki zihinsel yükü azaltması güvenilirliği artırabilir) performansı artırmak için daha az baskı olacaktır.
Özgüllük, kendinizi tekrar etmeme ilkesine karşı da çalışır, çünkü optimizasyon genellikle kodu belirli bir kullanıma uyarlayarak mümkündür. Bunun bariz güvenilirlik ve programlama çabası sonuçları vardır.
Bir dil tarafından sağlanan soyutlamalar, daha az ağır bir soyutlama seçmenin hiçbir yolu olmayan, istenmeyen veya gereksiz çalışmaları da içerebilir. Gereksiz çalışmalar bazen alt katmanlar tarafından keşfedilip çıkarılabilirken (örneğin, sınır kontrolleri bir döngü gövdesinden çıkarılabilir ve bazı durumlarda tamamen kaldırılabilir), bunun geçerli bir optimizasyon olduğunu belirlemek, daha fazla "beceri ve çaba" gerektiriyor derleyici.
Dil yaşı ve popülerliği, hem yetenekli programcıların mevcudiyetinde hem de sistemin alt katmanlarının kalitesinde (olgun kütüphaneler ve kod örnekleri dahil) dikkate değer faktörlerdir.
Bu tür karşılaştırmalardaki bir başka çelişkili faktör, vaktinden önce derleme ile tam vaktinde derleme arasındaki biraz dik farktır. Tam zamanında derleme, profil bilgilerini (profil çalıştırmaları sağlamak için programcıya güvenmemek) ve sisteme özgü optimizasyonu (zamanından önce derleme daha geniş uyumluluğu hedefleyebilir) daha kolay bir şekilde kullanabilirken, agresif optimizasyonun ek yükü şu şekilde hesaplanır: çalışma zamanı performansının bir parçası. JIT sonuçları önbelleğe alınabilir, bu da yaygın olarak kullanılan kod için ek yükü azaltır. (İkili yeniden optimizasyon alternatifi, JIT derlemesinin bazı avantajlarını sağlayabilir, ancak geleneksel ikili dağıtım biçimleri, kaynak kod bilgilerinin çoğunu, sistemi belirli bir uygulamanın amacını fark etmeye teşebbüs etmeye zorlayabilir.)
(Daha düşük soyutlama dilleri, programcı kontrolüne vurgu yaptıkları için, önceden derleme kullanımını tercih eder. Yükleme zamanı derlemesi tolere edilebilir, ancak bağlantı zamanı uygulama seçimi daha fazla programcı kontrolü sağlar. JIT derlemesi önemli kontrolü feda eder. )
Kıyaslama metodolojisi de var. Eşit çaba / beceri oluşturmak etkili bir şekilde imkansızdır, ancak bu şekilde bile gerçekleştirilebilirse, dil hedefleri sonuçları önyargılar. Düşük bir maksimum programlama süresi gerekiyorsa, daha az soyut bir dil için bir program, daha soyut bir dilde basit bir deyimsel ifadeye kıyasla tamamen yazılmayabilir. Yüksek bir maksimum programlama süresi / çabasına izin verilirse, daha düşük soyutlama dillerinin bir avantajı olacaktır. En iyi çaba sonuçları sunan karşılaştırmalar doğal olarak daha az soyut diller lehine taraflı olacaktır.
Diğer programlama paradigmalarının avantajlarını elde etmek için bazen bir dilde daha az deyimsel bir şekilde programlamak mümkündür, ancak ifade gücü mevcut olsa bile, bunu yapmak için denemeler uygun olmayabilir.