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


Öne çıkan mesajlar

Mesaj tarihi:
iki dilide bilmiormda
coutla printf aynı mı? değildir diye tahmin ediyorum.

printf sanki daha çok şey yapabilen komplike versionu olabilir.

fonksiyonların açık hallerını koyabilrimisin buraya? ordan yürüyelim.
Mesaj tarihi:
yukarda operator overloading yapiyorsun o biraz süre arttırır
biri gcc ile biri g++ ile derleniyor bu biraz süre arttırır
birinde c kütüphaneleri kullanırken diğerinde c++ için kullanıyorusn, bildğim kadarı ile linker'larda farklı (emin değilim) 2 kütüphanein derlenmeye katılma süreleri farklı

en büyük farkı operator overloading oluşturuyor ama, diğerleri teorik farklar.
Mesaj tarihi:
Bloodless said:

şimdi denedim printf kullanarak cpp derledim gerçekten yakın sonuçlar veriyor. Peki cout'u bu kadar yavaş kulan nedir?


orda cout'u çıkardığında operator overloading yapmaktan da vazgeçiyorsun
dediğim gibi asıl hız kaybını oo yaşatıyor sana.

neden cout yavaş dersen

bak bu printf'in asym'si
main: @ @main
@ BB#0:
push {lr}
ldr r0, .LCPI0_0
ldr r2, .LCPI0_1
mov r1, #2
bl printf
mov r0, #0
pop {lr}
mov pc, lr
.align 2
@ BB#1:

bu da cout << için

@ @main
@ BB#0:
push {r4, r5, lr}
ldr r4, .LCPI0_0
ldr r1, .LCPI0_1
mov r2, #6
mov r3, #0
mov r0, r4
bl _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
mov r0, r4
mov r1, #2
bl _ZNSolsEi
ldr r1, .LCPI0_2
mov r2, #2
mov r3, #0
mov r4, r0
bl _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
ldr r1, .LCPI0_3
mov r0, r4
mov r2, #14
mov r3, #0
bl _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
ldr r1, .LCPI0_4
mov r0, r4
mov r2, #1
mov r3, #0
bl _ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
ldr r0, [r4]
sub r0, r0, #24
ldr r0, [r0]
add r0, r0, r4
ldr r5, [r0, #240]
cmp r5, #0
beq .LBB0_5
@ BB#1: @ %_ZSt13__check_facetISt5ctypeIcEERKT_PS3_.exit
ldrb r0, [r5, #28]
cmp r0, #0
beq .LBB0_3
@ BB#2:
ldrb r0, [r5, #39]
b .LBB0_4
.LBB0_3:
mov r0, r5
bl _ZNKSt5ctypeIcE13_M_widen_initEv
ldr r0, [r5]
mov r1, #10
ldr r2, [r0, #24]
mov r0, r5
mov lr, pc
mov pc, r2
.LBB0_4: @ %_ZNKSt5ctypeIcE5widenEc.exit
lsl r0, r0, #24
asr r1, r0, #24
mov r0, r4
bl _ZNSo3putEc
bl _ZNSo5flushEv
mov r0, #0
pop {r4, r5, lr}
mov pc, lr
.LBB0_5:
bl _ZSt16__throw_bad_castv
.align 2
@ BB#6:
Mesaj tarihi:
array boyutunu ilk 1x1 yap bence. sonra 100x100, 1000x1000 yapınca elde ettigin rakamlar arasında büyüme oranından array'ın etkisini çıkarabilirsin. gerçekten arrayden kaynaklanıyorsa matrix elemanlarına erişim süresindendir. he bir de cout ettirme mesela ne degisiyor.
Mesaj tarihi:
Ya olm dursaniza, daha Suark'i yurutcektik. =)

Neyse saka bi yana hemen her dilde isinize yarayacak bi trick vereyim. stdout'a neyle yazarsaniz yazin farketmez, surekli yazdiginiz surece hep yavaslicak o application. Haliyle output'u buffer'layip en son isiniz bitince ekrana bastirmak en optimum cozum.

Bu sekilde degistirirsen print kismini muhtemelen ayni surede calisacak iki app de + kuvvetle muhtemel oncekinden cok daha kisa surecek calismasi.
Mesaj tarihi:
Yalan zira dilin seviyesi ne kadar dusukse o kadar hizli calisiyor temel fonskiyonlari. Isin icine bi de OOP kismi girince karsilastirmak anlamsizlasabiliyor.

Genel olarak development kolaylastikca hizdan feragat ediyosun desem de olur sanirim.

Editor said:

YALANMI ?
×
×
  • Yeni Oluştur...