Jump to content
Forumu Destekleyenlere Katılın ×
Paticik Forumları
2000 lerden beri faal olan, çok şukela bir paylaşım platformuyuz. Hoşgeldiniz.

C/C++ aynı program çalıştırma süresi


Bloodless

Öne çıkan mesajlar

Bloodless said:

senko said:

ha bi de cout var tabi
cout printf'ten daha yavaştır yapısı itibari ile


cout kullanmamak gerekir diyebilir miyiz özet olarak?


hocam yine tasarladigin yazilima bakar
RTOS ustunde kosan embedded bir sisteme hazirliyorsan, evet cout ve operator overloading'lerden kacinmak lazim
hatta ve hatta bisi bastirilcaksa, bufferlanip bastirilmasi daha makul, cunku I/O'yu ne kadar az mesgul edersek o kadar baska aritmetic/logic islem yapilir.
Link to comment
Sosyal ağlarda paylaş

gcc 4.8.2 ubuntu 14 kusur sonuclari
c++ codu:
real 0m0.140s
user 0m0.008s
sys 0m0.033s

c codu:
real 0m0.122s
user 0m0.003s
sys 0m0.034s

Bence bu fark, windows kutuphaneleriyle ilgili bir durum olabilir. Kaldi ki, c++'i c'ye gore hiz disinda her seyde kullanabilirsiniz, kaldi ki hiz su modern dunyada, heralde en son karsilacaginiz problem. Bunu bu arada 7 sene yari-iletken cip sirketlerinde calismis bir kisi olarak soyluyorum.
Link to comment
Sosyal ağlarda paylaş

cout << matris[i][j] << "t";

bu satir aslinda iki function call; ilk function call da matris[i][j] degerini basiyor ikincisinde tab karakterini. soyle de acik yazilabilir;

ostream& c = ( cout << matris[i][j] );
c << "t"

Asil mevzu surda bence;
cout << endl;

bu satir printf muadili gibi tek function call ama iki islem birden yapiyor. once stream'e linefeed basiyor sonra stream i flush ediyor. yani 200 defa ayri ayri ekrana boyama islemi bekliyorsun. muhtemelen de en cok zamani alan bu.
cout << "n";

seklinde kullansan bir miktar hiz kazanman gerekir.
senko said:

hocam yine tasarladigin yazilima bakar
RTOS ustunde kosan embedded bir sisteme hazirliyorsan, evet cout ve operator overloading'lerden kacinmak lazim
hatta ve hatta bisi bastirilcaksa, bufferlanip bastirilmasi daha makul, cunku I/O'yu ne kadar az mesgul edersek o kadar baska aritmetic/logic islem yapilir.


cout tek bir printf call uyla yapabilecegin seyi 4-5 call ile yapabildigin icin performance penatly var ama cout yavas diye cout tan kacinmayin bence. once kodu cout la yazin sonra kodu "profile edin" profile sonunda performans sorunu yaratiyorsa cout tan printf e gecirin. zira printf nispeten hataya daha acik. ne demis atalarimiz; "premature optimization is the root of all evil"

operator overloading sadece syntactic sugar. ha kendi sinifina .add(const MyClass& right) diye metod yazmissin ha += operatorunu overload etmissin. runtime da zerre kadar farki yok.

embedded sistemlerde templateler cok sevilmez. o da memory footprint i arttirdigi icin. ne yaptiginizi biliyorsaniz o da cok problem degil.
Borastus said:

Aha c tokatlar ki performans konusunda


acemi c++ developeri vs. pro c developeri elinde belki.
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...