ecwx
18-09-2006, 07:06 PM
Halo all,
Iseng2 gw kemarin bikin program maze generator dengan algoritma depth first traversal sederhana. Gw bikin dalam bahasa C murni standar, dengan menggunakan library Mersenne Twister (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html) untuk random generator-nya dengan menmasukkan source code ikut ke dalam project gw.
Awalnya program gw compile dan gw jalanin di PC kerja gw, Debian Linux, habis itu gw coba compile di desktop temen, dengan RAM 256 MB yang dual boot win XP dan Linux hasil-nya cukup menarik.
* Di Debian Linux, RAM 1 GB, program bisa meng-generate maze dengan ukuran 400x400 tanpa masalah
* Di SimplyMepis, RAM 256 MB, program bisa meng-generate maze dengan ukuran 400x400 tanpa masalah
* Di Windows XP, compile menggunakan Visual Studio 2005 Express, hanya bisa meng-generate maze dengan ukuran 60 x 60
* Di Windows XP, compile dengan MINGW, hanya bisa meng-generate maze dengan ukuran 150x150
Kalau gw jalanin untuk meng-generate maze yang lebih besar daripada angka di atas program akan exit dengan error segmentation fault.
Karena penasaran, gw coba ukur berapa kedalam rekursi yang bisa dijelajaih program tersebut:
* Di Linux 1 GB, program bisa menjalani rekursi dengan kedalaman sekitar 104700 sebelum error segmentation fault
* Di Linux 256 MB, program bisa menjalani rekursi dengan kedalaman sekitar 104700 sebelum error segmentation fault
* Di Windows XP dengan program dikompail menggunakan MINGW, program bisa menjalani rekursi dengan kedalaman sekitar 26000 sebelum error segmentation fault
* Di Windows XP dengan program dikompail menggunakan VS2005E, program hanya bisa menjalani rekursi dengan kedalaman sekitar 3600 sebelum error segmentation fault !!!!
GW agak kaget dengan hasil percobaan iseng2 gw ini, gw gak nyangka perbedaan di windows dan linux jauh banget. Emang sih kayanya kebanyakan program gak akan melakukan rekursi sampai kedalaman puluhan ribu, apalagi ratusan ribu :D Tapi tetep aja hasil ini menarik perhatian gw.
Yang cukup menarik juga adalah sama di Windows XP, tapi menggunakan compiler yang berbeda (Microsoft VS2005E dan MINGW) menghasilkan hasil yang cukup jauh juga.
Gw merencanakan mau melakukan test rekursi dengan program yang lebih sederhana untuk mengetahui lebih jauh apakah penyebab keterbatasan ada di ketersediaan memory, atau emang disain OS/compiler-nya
Just want to share with you all, siapa tahu ada manfaatnya :)
Iseng2 gw kemarin bikin program maze generator dengan algoritma depth first traversal sederhana. Gw bikin dalam bahasa C murni standar, dengan menggunakan library Mersenne Twister (http://www.math.sci.hiroshima-u.ac.jp/~m-mat/MT/emt.html) untuk random generator-nya dengan menmasukkan source code ikut ke dalam project gw.
Awalnya program gw compile dan gw jalanin di PC kerja gw, Debian Linux, habis itu gw coba compile di desktop temen, dengan RAM 256 MB yang dual boot win XP dan Linux hasil-nya cukup menarik.
* Di Debian Linux, RAM 1 GB, program bisa meng-generate maze dengan ukuran 400x400 tanpa masalah
* Di SimplyMepis, RAM 256 MB, program bisa meng-generate maze dengan ukuran 400x400 tanpa masalah
* Di Windows XP, compile menggunakan Visual Studio 2005 Express, hanya bisa meng-generate maze dengan ukuran 60 x 60
* Di Windows XP, compile dengan MINGW, hanya bisa meng-generate maze dengan ukuran 150x150
Kalau gw jalanin untuk meng-generate maze yang lebih besar daripada angka di atas program akan exit dengan error segmentation fault.
Karena penasaran, gw coba ukur berapa kedalam rekursi yang bisa dijelajaih program tersebut:
* Di Linux 1 GB, program bisa menjalani rekursi dengan kedalaman sekitar 104700 sebelum error segmentation fault
* Di Linux 256 MB, program bisa menjalani rekursi dengan kedalaman sekitar 104700 sebelum error segmentation fault
* Di Windows XP dengan program dikompail menggunakan MINGW, program bisa menjalani rekursi dengan kedalaman sekitar 26000 sebelum error segmentation fault
* Di Windows XP dengan program dikompail menggunakan VS2005E, program hanya bisa menjalani rekursi dengan kedalaman sekitar 3600 sebelum error segmentation fault !!!!
GW agak kaget dengan hasil percobaan iseng2 gw ini, gw gak nyangka perbedaan di windows dan linux jauh banget. Emang sih kayanya kebanyakan program gak akan melakukan rekursi sampai kedalaman puluhan ribu, apalagi ratusan ribu :D Tapi tetep aja hasil ini menarik perhatian gw.
Yang cukup menarik juga adalah sama di Windows XP, tapi menggunakan compiler yang berbeda (Microsoft VS2005E dan MINGW) menghasilkan hasil yang cukup jauh juga.
Gw merencanakan mau melakukan test rekursi dengan program yang lebih sederhana untuk mengetahui lebih jauh apakah penyebab keterbatasan ada di ketersediaan memory, atau emang disain OS/compiler-nya
Just want to share with you all, siapa tahu ada manfaatnya :)