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

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.
Link to comment
Sosyal ağlarda paylaş

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:
Link to comment
Sosyal ağlarda paylaş

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.
Link to comment
Sosyal ağlarda paylaş

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 ?
Link to comment
Sosyal ağlarda paylaş

×
×
  • Yeni Oluştur...