String Concatenation dan Performance

Posted by Ikhwan on September 30, 2007

Dahulu, aku ada tulis sikit pasal string concatenation (menyambung string) dalam .NET dan beberapa langkah utk improve sedikit performance bila melakukannya. Particularly, menggunakan StringBuilder.

Hari ini, aku terbaca beberapa artikel tentang string concatenation lagi:

StringBuilder is not always faster
StringBuilder is not always faster - Part 2

Beberapa kesimpulan yang boleh didapati dari artikel-artikel tu:

  1. Compiler akan melakukan optimization bila kita menyambung string literals (tapi tidak bagi variable):

    string str = "satu" + "dua" + "tiga";

    Walaupun dalam code di atas ada 3 string literal, dalam IL yang dijanakan, ia akan dianggap sebagai satu “satuduatiga”. So it’s okay to do that, no performance impact berkenaan immutable object di sini.

  2. Bila menyambung lebih dari 3 string variable, gunakan StringBuilder. Tapi jika kurang dari itu, concatenation biasa menggunakan + lebih pantas. Mungkin sebab masa yang digunakan utk allocate memory untuk StringBuilder.
     
  3. Setkan initial size bagi StringBuilder, kalau kita boleh agak saiz string yang akan terhasil. Ini mengelakkan StringBuilder dari terpaksa allocate memory tambahan bila diperlukan. Default constructor bagi StringBuilder akan allocate initial memory sebanyak 16 bytes.
     
  4. Penggunaan String.Format (atau StringBuilder.AppendFormat) memang lambat, tetapi ia dapat memudahkan code utk dibaca. Aku lebih cenderung pada code readability, jadi aku lebih suka String.Format berbanding yang lain. Melainkan kalau performance is really critical.
     

Unpredictable Availability

Posted by Ikhwan on September 28, 2007

Bleh. You might get quite some error pages when accessing this site. The hosting seems a bit unstable lately. It’s database related, but we’re not sure yet what’s the real problem, but I’ll try to upgrade to newest version of WordPress, just in case. So, the next time you’ll see an error page again, please pray for this website’s safety.

p.s: This page that you are looking at right now may be a cached copy, not the real deal.

LOLSECRETZ

Posted by Ikhwan on September 24, 2007

If you like LOLCAT and you like PostSecret, I am sure you’d love LOLSECRETZ!!!

lonelycat

Ilmu Yang Menyelamatkan

Posted by Ikhwan on September 21, 2007

Masjid kat tempat aku, sebelum solat tarawih mula, seorang ustaz akan bangun dan bagi satu tazkirah pendek. Malam kelmarin, dia bawa cerita yang menarik. Hampir setiap malam cerita menarik sebenarnya, tapi aku nak ceritakan yang ini. Cerita ni diambil dari sebuah kitab katanya, dan dia olah sikit cerita ni supaya mudah untuk kita faham. Sebenarnya, ustaz ni memang semua cerita dia nak olah. Memang poyo dia ni. Aku, on the other hand, tak olah cerita ni, aku ceritakan sebaik mungkin mengikut apa yang aku ingat.

Pada suatu masa dahulu, ada 3 orang pemuda yang pandai dan tinggi pengetahuan mereka. Pemuda pertama dah belajar dari banyak universiti, dari yg dalam negara, sampai seberang laut, hinggalah ke dalam laut. Pemuda kedua ni belajar di berbilang-bilang tempat dari US ke UK sampailah ke Timbaktu. Pemuda ketiga pun begitu lah juga, semuanya tinggi tahap ilmunya.

Tiba masa cuti universiti, mereka ni pun nak pulang ke kampung. Asal dari kampung yang sama mereka ni. Untuk ke kampung tu, diorang kena naik perahu merentas laut sebab kampung diorang kat pulau. Kebetulan mereka sampai ke jeti serentak, maka naiklah mereka bertiga dalam satu perahu yang sama dengan seorang pakcik pendayung perahu tu.

Dalam perjalanan, ketiga-tiga pemuda ni nak tunjuklah mereka pandai, dan cuba nak uji pendayung sampan. Pemuda pertama pun tanya pada pakcik pendayung.

“Pakcik… Pakcik tahu tak apa dia kamiran bagi x? Atau the integration of x?”

“Err, pakcik ni tak tahu apa-apa kemahiran lain, dayung sampan pakcik tahu lah”, jawab pakcik. Dia ingat kamiran tu kemahiran.

“Apalah pakcik ni, benda simple macam ni pun tak tahu. Integration of x is x2/2″, balas pemuda pertama dgn bongkak.

Giliran pemuda kedua pula tanya. Pemuda kedua ni belajar medic.

“Pakcik… Pakcik tahu berapa BP normal kita?”

“Err, kalau nak ke BP tu arah sana. Batu Pahat dalam beberapa batu je dari sini”, jawab pakcik tu.

“Apalah pakcik ni, BP tu blood pressure, normal dalam 120/80″, terang pemuda kedua yang juga bongkak.

Pemuda ketiga pun teringin nak menunjukkan kepandaiannya.

“Pakcik… Pakcik tahu tak berapa ramai penduduk London?”

“Err, manalah pakcik tahu, nak.. Pakcik ni, London tu memang pernah dengar, tapi Kuala Lumpur pun pakcik tak pernah sampai”, jawab pakcik tu sedih.

“Apalah pakcik ni, London’s population dalam 8 juta orang”, jelas pemuda ketiga.

Lalu mereka bertiga-tiga ni pun mengetawakan pakcik ni sebab soalan-soalan mudah ni pun dia tak tahu. Ha ha ha.

Tiba-tiba, langit yang cerah menjadi gelap. Awan hujan mula berkumpul, angin makin kencang dan ombak makin mengganas.

Pakcik ni lantas bertanya kepada 3 pemuda ni. Satu soalan yang ringkas,

“Nak… anak bertiga ni tahu berenang tak?”

Ketiga-tiganya menggeleng serentak.

Lalu, ribut pun datang melanda dengan dahsyatnya, perahu yang diorang naik tu pun terbalik. Hanya pakcik pendayung perahu je yang selamat, ketiga-tiga pemuda tu mati lemas dilambung ombak.

Kesimpulan dari cerita ni, carilah ilmu yang boleh menyelamatkan kita. Ilmu yang dimaksudkan, terang ustaz tu, ialah ilmu agama. Itu yang akan menyelamatkan kita dari dugaan dunia dan menjadi pelindung di akhirat. Rugilah kita kalau kita asyik sangat kejar ilmu duniawi, dan bermegah-megah dangan apa yang kita tahu, sedangkan kita mengabaikan ilmu yang lebih penting, yang dapat menjamin kesejahteraan kita, semasa hidup dan selepas mati.

Vista: Takes To Long To Copy Files

Posted by Ikhwan on September 21, 2007

Looks like it's gonna be a while

 
Darn, looks like it’s gonna take some time to finish… about 45 years.

Puasa Tak Sembahyang

Posted by Ikhwan on September 19, 2007

Aku tak faham la orang-orang yang puasa tapi tak sembahyang. Berlapar dahaga seharian boleh, sembahyang yang sekejap tu tak boleh. Habis tu, buat apa penat-penat puasa, masuk neraka jugak.

“Oho, sedap je ko cakap orang masuk neraka ke syurga ke? Engkau ke yang tentukan?”

Memang la tak… Masuk syurga neraka tu urusan Tuhan. Tapi theoretically speaking la kan, kalau dah ingkar suruhan Tuhan, tak buat salah satu rukun Islam, tu memang ada peluang besar masuk neraka tu.

Temporal Discontinuity

Posted by Ikhwan on September 19, 2007

This website has been down for quite some days, probably since Sunday. Sorry for that. I’m away, without Internet connection at kampung, and only noticed it yesterday. I start noticing when I don’t get any email for comments, which usually I get around 10 per day, mostly by the friendly spammers. When I check my web stats, only 1-2 visits per day, as opposed to normal about 11000 hits (Yeah, I wish :).

But it’s all good now, managed to get it solved last night. We can continue now with our normal supply of anti-keseronokan goodness…

The culprit is the MySQL database. Queries seems to take too long to return, if it does at all. I contacted the web host support, we chatted through YM, and he managed to solve it by restarting the MySQL server. Yep, the standard and typical way to solve software problems, restart it. 3-finger salute ALT+CTRL+DEL. If it doesn’t work, restart the physical machine. Still doesn’t work, punch the power button again. How about we try to pull out the plug and put it back in? Doesn’t work? How about we bring down the main power. Still nothing? We bring down the Lembah Kelang power grid.

And it’ll magically get back to it’s pristine working condition!

If life would be that easy… Owh, I’ve screwed up, my life’s a mess now. I should’ve told the barber not to cut too short. I’ve impregnated an innocent girl. I’ve accidentally lost my leg in an illegal race. I’ve killed a kitten. I’ve choosen to be a programmer.

What the heck, RESTART!

If only we could find the button that easily.

p.s: By the way, the support personnel is quite prompt. I’m supprised on how casual he talks on YM, which is nice really. It’s just you shouldn’t be too casual, you know, have to put certain boundaries there.