*belagak bisa ngejelasin
Gw coba di mesin windows gue hasilnya gini Rie:
10jt
user system total real
% 24.141000 1.000000 25.141000 ( 26.087000)
+ 16.062000 0.141000 16.203000 ( 16.569000)
10ribu
user system total real
% 0.015000 0.000000 0.015000 ( 0.016000)
+ 0.016000 0.000000 0.016000 ( 0.016000)
Menurut gue sih, karena kalau proses concate kan tidak memerlukan
temporary-memory, sementara kalau proses replace itu -kalau nggak salah-
butuh temporary-memory (dalam bentuk Array, dilihat dari C-source-nya).
Jadi proses '+' lebih cepet karena nggak ambil pusing, pokoknya tinggal
Str-A = Str-A + Str-B, kalau proses '%' harus alokasi memory dulu,
nentuin yg mana yg mau di replace/ada proses IF, copy dulu hasil
replacement-nya di variable/object baru/temporary, copy isi object
baru/temporary ke object asal..begitu seterusnya...sampai selesai.
Proses ini akan semakin kelihatan lebih lama pada saat alokasi
memory-nya butuh banyak, lebih" kalau memory management OS-nya jelek,
udah pasti blue-screen deh...(koq jadi windows-specific-problem ya?
hahaha)
Ini menurut gue lho....
* ngumpet dulu takut salah ngomong
------------------------------------------------------------------------
--------------------
Anybody can explain it clearer?
Ada yang bisa menjelaskan dg lebih gamblang?
user system total real
% 21.300000 1.920000 23.220000 ( 23.278688)
+ 12.750000 1.920000 14.670000 ( 14.683736)
Dugaan sementara ariekeren ya itu + cuma concat, sedang % bisa replace
jadi memang kelebihannya itu juga dibayar dengan performa, karena
sebetulnya sebelum tembak dengan sepuluh juta itu ariekeren pakai
sepuluh ribu hasil benchmarknya gini (semua sampai totalnya sama, beda
di realnya):
user system total real
% 0.020000 0.000000 0.020000 ( 0.024216)
+ 0.020000 0.000000 0.020000 ( 0.014881)
[Non-text portions of this message have been removed]