Performans Konusunda C Ve C++ Farkı?
-
Esconda bunu yazdıunbalanced bunu yazdı
geniş çaplı projeler nelerdir hocam mesela? dünyada çok spesifik olmadıkça c/c++ çok kullanılmıyor projelerde. .net ve java şuan lider konumda.
zaten dil seviyesi yükseldikçe yazılımcıya düşen yük azalıyor (gc işleri gibi) o halde bu özel bir iş yapılmıyorsa bu tarz dillerin kullanılması
hamallıktan başka bir şey değildir, maliyette paralel olarak artar.
Kendisi c ve c++ arasındaki farkı sorduğu için o bazda cevap vermiş oldum
Java da bir OOP dillerinden biridir ve c++ de kullansan java da kullansan farketmez çünkü aynı olanakları sağlar
Yordamsal programlama ile OOP dillerini karşılaştırabilirsin fakat iki tane OOP dilini karşılaştırırsan absürt kaçar çünkü kişinin isteğine bağlıdır.
Ben dünyadaki kullanım oranı ile ilgili konuşuyorum, bildiğim kadarıyla polonyadasın hocam, oradaki firmaların isteklerini biliyorsundur...
oop karşılaştıralamaz demişsin, absürd olan bir şey yok, oop seviyeleri var, her dilde bu seviyeler eşit değil. c++ da mesela bellek kontrolünü
nasıl yaparsın? java da nasıl yaparsın c# da nasıl yaparsın? yüksek seviyeli dillerde bu tarz düşük seviyeli işlemler daha kolay ve kullanıcı
kontrolü dışında tutulmaya çalışılmıştır. cpp de kod yazan biri özellikle kapsamlı bir proje yazıyorsa bir çok şeyi hesap ederek yazmak zorunda
işte o sebeple gerek olmadıkça bu diller techil edilmez! bir arama motoru yaparken c++ kullanırsın .net kullanmazsın ama bir erp için c++
kullanmak .... (boş bıraktım)
-
unbalanced bunu yazdıEsconda bunu yazdıunbalanced bunu yazdı
geniş çaplı projeler nelerdir hocam mesela? dünyada çok spesifik olmadıkça c/c++ çok kullanılmıyor projelerde. .net ve java şuan lider konumda.
zaten dil seviyesi yükseldikçe yazılımcıya düşen yük azalıyor (gc işleri gibi) o halde bu özel bir iş yapılmıyorsa bu tarz dillerin kullanılması
hamallıktan başka bir şey değildir, maliyette paralel olarak artar.
Kendisi c ve c++ arasındaki farkı sorduğu için o bazda cevap vermiş oldum
Java da bir OOP dillerinden biridir ve c++ de kullansan java da kullansan farketmez çünkü aynı olanakları sağlar
Yordamsal programlama ile OOP dillerini karşılaştırabilirsin fakat iki tane OOP dilini karşılaştırırsan absürt kaçar çünkü kişinin isteğine bağlıdır.
Ben dünyadaki kullanım oranı ile ilgili konuşuyorum, bildiğim kadarıyla polonyadasın hocam, oradaki firmaların isteklerini biliyorsundur...
oop karşılaştıralamaz demişsin, absürd olan bir şey yok, oop seviyeleri var, her dilde bu seviyeler eşit değil. c++ da mesela bellek kontrolünü
nasıl yaparsın? java da nasıl yaparsın c# da nasıl yaparsın? yüksek seviyeli dillerde bu tarz düşük seviyeli işlemler daha kolay ve kullanıcı
kontrolü dışında tutulmaya çalışılmıştır. cpp de kod yazan biri özellikle kapsamlı bir proje yazıyorsa bir çok şeyi hesap ederek yazmak zorunda
işte o sebeple gerek olmadıkça bu diller techil edilmez! bir arama motoru yaparken c++ kullanırsın .net kullanmazsın ama bir erp için c++
kullanmak .... (boş bıraktım)
Haklısın fakat bir yerde hatan var, Java oop üzerine daha çok yoğunlaştığı için tercih ediliyor.Fakat c++ günümüzde yordamsal programlama, oop, fonksyonel programlamada, metaprogramlama alanlarında kullanılıyor.Javanın oop için ideal olması c++ üzerinde olduğunu göstermez ki; c++ bilen bir kişi java bilen birine göre daha fazla alanda hizmet verebilir.
Elektronikte javayı kolaylık açısından tercih etmeme rağmen c++ bana her alanda daha fazla olanak sağlıyor.
-
kendimi ifade edemedim sanırım, benim için c++ java ve .net teknolojisinden çok daha zor ve bilen adamın bir çok konuya hakim olması gerekiyor.
Benim kast ettiğim dilin güçlü olması değil, sadece java, c# gibi dillerin kullanım kolaylığının fazla olmasıdır, bir çok işi kendisi arkaplanda yapmasıdır
örnek olarak da garbage collector u verdim. mesela c++ da kullanılan semaphore, mutex, memory shared (ipc konuları) ya da pointer gibi
kavramlar .net dillerinde var olmasına rağmen çok kullanılan, tercih edilen şeyler değil ki bir çok .net yazılımcısnın bu konulardan haberi bile
yoktur,işleyişi bilmezler ancak c++ kullancıları bunları bilmek uygulamak zorundadır ve bu işlerde çok kolay şeyler değil o yüzden proje çok özel
değilse yani düşük seviye işler yok ise java ve .net tercih edilir.
edit :elektronikte javayı nerede kullanıyorsun bilmiyorum, ben usb kontrolü için c# kullanıyorum. mikroişlemci programlama için ccs c. devre hesaplamalarında zamanında matlab gösteriliyordu ya da laplace/ters laplace ile çözülüyordu
unbalanced tarafından 28/Mar/13 18:40 tarihinde düzenlenmiştir -
unbalanced bunu yazdı
kendimi ifade edemedim sanırım, benim için c++ java ve .net teknolojisinden çok daha zor ve bilen adamın bir çok konuya hakim olması gerekiyor.
Benim kast ettiğim dilin güçlü olması değil, sadece java, c# gibi dillerin kullanım kolaylığının fazla olmasıdır, bir çok işi kendisi arkaplanda yapmasıdır
örnek olarak da garbage collector u verdim. mesela c++ da kullanılan semaphore, mutex, memory shared (ipc konuları) ya da pointer gibi
kavramlar .net dillerinde var olmasına rağmen çok kullanılan, tercih edilen şeyler değil ki bir çok .net yazılımcısnın bu konulardan haberi bile
yoktur,işleyişi bilmezler ancak c++ kullancıları bunları bilmek uygulamak zorundadır ve bu işlerde çok kolay şeyler değil o yüzden proje çok özel
değilse yani düşük seviye işler yok ise java ve .net tercih edilir.
Anlaştık o zaman :)
-
Kısa cevap:
İkisi arasında herhangi bir performans farkı olması beklenmez, şayet ikisi de platfroma özgü makine diline derlenir ve platformun yeteneklerini kullanır.
Uzun cevap:
cout, zekidir. Hangi tipten veri (nesne) ile uğraştığını bilir, bizim söylememize gerek kalmaz. Zekiliğin sonucu arkaplanda veri kopyalaması, tip kontrolü vs. gerektirir. Bu yüzden biraz daha yavaştır. Fakat bu yavaşlık ya gözle görülemeyecek kadar az ya da ihmal edilebilir ölçüdedir ( 2,0 GHz bir işlemci ve 512 MB arabellek ile cout'lu programda fark hissediyorsanız, bir şeyleri yanlış yapıyorsunuzdur).
printf ise puts komutuna göre yavaştır. Çünkü printf ile formatlı çıktı alınması işlemi hem daha fazla bellek alanı hem de daha fazla çevrim demektir.
Daha iyi cevap:
Formatlamayı elle yaptığımız printf ile akışlar üzerinde söz sahibi olduğumuz yetenekli cout'u (cout, bir nesnedir, komut ya da işlev değildir) karşılaştırmak mantıklı değildir.
-
C++
-
adam ben mükemmel biliyorum dememiş, bi soru sormuş yerden yere vurmuşsunuz.