C'nin genellikle C ++ 'a göre performans avantajı olduğunu çok sık duyduğumu biliyorum. MSVC'nin en yeni C standardını desteklemediğini bile fark edene kadar başka hiçbir şey düşünmedim, ama en yenisi C99'u (bildiğim kadarıyla) destekliyor.
Yeniden kullanabilmem için OpenGL'de işlemek için bazı kodlar içeren bir kütüphane yazmayı planlıyordum. Kütüphaneye C yazmayı düşünüyordum, çünkü performans konusunda herhangi bir grafikte artış yaşanıyor.
Ama buna gerçekten değecek mi? Kütüphaneyi kullanan kod büyük olasılıkla C ++ ile yazılmış ve genel olarak C ++ ile kodlamayı tercih ediyorum.
Ancak, performansta küçük bir fark bile olsa, C ile giderdim.
Ayrıca bu kütüphanenin Windows / OS X / Linux üzerinde çalışacağım bir şey olacağı ve muhtemelen her şeyi yerel olarak derleyeceğim (Windows için MSVC, OS X için Clang veya GCC ve Linux için GCC .. belki de Intel'in her şey için derleyicileri).
Etrafa baktım ve bazı ölçütler buldum, ama gördüğüm her şey MSVC ve Clang yerine GCC ile ilgilendi. Ayrıca, ölçütler kullanılan dillerin standartlarından bahsetmiyor. Bu konuda bir fikri olan var mı?
DÜZENLE:Birkaç yıl daha tecrübeli olduktan sonra sadece bu konudaki bakış açımı paylaşmak istedim. Bu soruyu sorduğum projeyi C ++ 'da yazdım. Başka bir projeye C ile aynı anda başlamıştım, elde edebileceğimiz herhangi bir küçük performansın elde edilmesini istiyordum ve projenin C'de bağlanması gerekiyordu. Birkaç ay önce haritalara gerçekten ihtiyaç duyduğum bir noktaya ulaştım. dize manipülasyonu. C ++ standart kütüphanesinde bunun yeteneklerini biliyordum ve nihayetinde standart kütüphanedeki bu yapıların makul bir sürede C de uygulayabileceğim haritalar ve dizgilerden daha iyi performans göstereceği ve daha istikrarlı olacağı sonucuna vardım. C ile bağlanabilir olma zorunluluğu, opak tiplerle hızlı bir şekilde yapılan C ++ koduna bir C arayüzü yazılarak kolayca karşılandı. Kütüphaneyi C ++ ile yeniden yazmak, C'ye yazarken olduğundan çok daha hızlı gibiydi ve özellikle bellek sızıntısı gibi hatalara daha az eğilimli görünüyordu. Ayrıca platforma özgü uygulamaları kullanmaktan çok daha kolay olan standart kütüphane ipliği kütüphanesini de kullanabildim. Sonunda, kütüphaneyi C ++ 'da yazmanın, muhtemelen küçük bir performans maliyeti ile büyük faydalar sağladığına inanıyorum. Henüz C ++ sürümünü kıyaslamamıştım, ancak yazdığımdan standart kütüphane veri yapılarını kullanarak bazı performanslar kazanmamın mümkün olabileceğine inanıyorum. Kütüphaneyi C ++ 'da yazmanın, muhtemelen küçük bir performans maliyeti ile büyük faydalar sağladığına inanıyorum. Henüz C ++ sürümünü kıyaslamamıştım, ancak yazdığımdan standart kütüphane veri yapılarını kullanarak bazı performanslar kazanmamın mümkün olabileceğine inanıyorum. Kütüphaneyi C ++ 'da yazmanın, muhtemelen küçük bir performans maliyeti ile büyük faydalar sağladığına inanıyorum. Henüz C ++ sürümünü kıyaslamamıştım, ancak yazdığımdan standart kütüphane veri yapılarını kullanarak bazı performanslar kazanmamın mümkün olabileceğine inanıyorum.