Per 2016, RMID pindah ke RMID Discord (Invite link dihapus untuk mencegah spambot -Theo @ 2019). Posting sudah tidak bisa dilakukan lagi.
Mohon maaf atas ketidaknyamanannya dan mohon kerjasamanya.

Share | 
 

 Hindari Crash VXAce Karena Memory Leak & Object Undisposed

Topik sebelumnya Topik selanjutnya Go down 
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 09:27
PostHindari Crash VXAce Karena Memory Leak & Object Undisposed
#1
TroyZ 
Novice
Novice
TroyZ

Level 5
Posts : 193
Thanked : 5
Engine : RMVX Ace
Skill : Intermediate
Type : Scripter

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
Hindari Crash VXAce Karena Memory Leak & Object Undisposed


Original Link : http://13th-info.blogspot.com/2013/12/menghindari-crash-vxace-karena-memory.html

Hindari Crash VXAce Karena Memory Leak & Object Undisposed 16iyukm

Siapa yg sering ketemu crash dengan bentuk error seperti itu? Sedikit orang? Banyak orang? Penyebab crash seperti itu ditentukan oleh banyak faktor, seperti VXAce yang diinstal bukan versi officialnya (hasil crackan, tapi yg ini jarang seh), atau karena kesalahan dari program itu sendiri (seperti script yang tidak diprogram dengan benar). Disini saya akan mengajarkan kalian sekaligus memberi informasi tentang crash di VXAce dengan bentuk error seperti itu dan bagaimana solusi yg tepat untuk mengakalinya. Tapi yang saya ajarkan kali ini hanya crash karena kesalahan script yang tidak diprogram dengan benar.

Main Crash Reason

Script yang tidak diprogram dengan baik oleh scripternya, lama kelamaan akan melahirkan crash di VXAce, dan terkadang scripter itu sendiri tidak tau dimana letak kesalahannya karena VXAce tidak berhasil mendetailnya (contohnya seperti error diatas, apakah kalian sendiri mengerti kesalahan sebenarnya dari sisi program atau dari sisi scriptnya). Salah satu crash yang cukup umum dan biasanya scripter luput dari penyebab ini (dan sayapun juga salah satunya yang luput) adalah OBJEK SPRITE YANG TIDAK DIDISPOSE DENGAN BENAR. Objek Sprite tidak sama dengan Window yang ketika keluar dari scene tersebut/viewportnya hilang maka objeknya juga ikut hilang. Objek Sprite HARUS PUNYA METODE DISPOSE UNTUK DIRINYA SENDIRI (biasanya kalo didalam class ada def dispose atau ga def terminate, disitulah tempat yang tepat untuk meletakkan fungsi dispose untuk objek Sprite). Perlu diketahui bahwa objek Sprite tetap tinggal di memory ketika Sprite tidak didispose dengan benar walaupun secara ketampakan sudah tidak ada lagi dilayar. Hal ini bisa membuat adanya penumpukan objek yang tidak digunakan lagi di memory (Garbage Collector sepertinya gagal dibagian ini) yang bisa menuju ke crashnya Game.exe itu sendiri.

Identifying The Crash Reason

Alasan kenapa VXAce bisa crash seperti itu sudah ditau. Sekarang darimana asal crash tersebut? Untungnya ada seorang scripter disana yang berhasil membuat script untuk mendetail bagian mana saja dari script yang kita pake yang bakal melahirkan crash tersebut. Scriptnya adalah Graphical Object Global Reference VX ACE yang bisa didapatkan disini. Kita akan menggunakan script tersebut sebagai debug lognya biar kita tau dimana letak kesalahan scriptnya.

Preparation

Sekarang saatnya ujicoba script yang bisa mengarahkan kita ke crash seperti itu. Kita akan coba dengan script saya sendiri TroyZ - Loading [VXAce] Version 1.0Ternyata script saya sendiri saya tidak program dengan benar.  :hammer:  #oh_god_why

Execution

Seperti biasa, sekarang coba jalankan sebuah project dengan script saya berada didalamnya. Fungsikan script tersebut.
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Screenshot+-+12_23_2013+,+3_28_17+AM

Yah masih berjalan dengan normal projectnya kan? Sekarang saatnya saya memasang script debug tersebut. Pasang script debug tersebut dibawah dari script loading milik saya.

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Screenshot+-+12_23_2013+,+3_30_16+AM

Sekarang saatnya testplay.
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Screenshot+-+12_23_2013+,+3_31_37+AM


Quote :
Hey padahal loadingnya sudah selesai, tapi gambarnya tetap ada disana.
Ya itu salah satu kesalahan saya dalam menulis script ini. Saat saya kembali ke scene sebelumnya, saya lupa untuk mendispose objek Sprite yang ada di scene tersebut  :doh:  (bodohnya saya ini). Nah sekarang solusinya, liat di file gobj.txt yang ada di project kamu (file ini muncul ketika menggunakan script debug tersebut, isinya adalah log tentang apa2 saja yang bakal membuat Game.exe crash).
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Screenshot+-+12_23_2013+,+3_35_33+AM+copy

Lihatlah line script yang didetail di gobj.txt . Ada create_background, draw_loading_text, draw_loading_base, draw_loading_bar. Semua line yang disebutkan itu adalah line dimana objek Sprite dibuat, dan ketika keluar dari scene, objek Sprite tersebut tidak didispose. Sekarang saatnya mengedit script tersebut agar objek Sprite saat keluar dari scene bisa terdispose dengan benar. Buka script editor, tambahkan baris seperti ini sebelum end dari scene loading.

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Screenshot+-+12_23_2013+,+3_48_46+AM

@text, @background_sprite, @load_base, @load_bar, itu semua adalah variabel yang menyimpan objek Sprite. Sekarang testplay lagi project kamu, tapi jangan lupa sebelum testplay, hapus dulu file gobj.txt yang tadi sudah ada. Jika file gobj.txt yang dihapus tadi sudah tidak muncul lagi saat testplay, berarti kamu sudah berhasil menggagalkan crash di VXAce yang disebabkan kesalahan script yang tidak diprogram dengan baik (sebenarnya kesalahan saya seh, kan saya yang buat scriptnya sampe gaje kaek gitu  :hammer:  :hammer:  :kebakar:  :kebakar: ).

Conclusion

Ini cuma salah satu dari sekian banyaknya penyebab crash di Game.exe milik VXAce yang berhasil digagalkan. Script debug milik Mithran tersebut sebenarnya punya metodenya sendiri untuk menggagalkan crash, tapi dari beberapa kesempatan script debug tersebut tidak berhasil karena penyebab crash bukan berasal dari script. Bisa diliat di FAQ yang ada di postnya di RMW.
Quote :
Q: Game.exe crashes for me constantly and this didn't help!
A: As explained, this only prevents Game.exe crashes caused by the specific set of circumstances outlined. Crashes caused by memory faults or other errors may still remain, but if there is an in-game reason for it (read: crashes happen after x set of actions are taken with a fair degree of consistency, or across several computers) feel free to leave a post here.
Jadi sebagai scripter, penggunaan objek Sprite harus benar-benar dikondisikan dengan baik (jangan seperti saya, kembali scene malah Sprite ditinggalin  :doh: ). Belajarlah dari kesalahan, dari sanalah kalian akan menemukan pengalaman yang akan mengajarimu lebih.

Sekian artikel dari saya, semoga bermanfaat.
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 09:36
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#2
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫
TheoAllen

Kosong
Posts : 4935
Thanked : 63
Awards:




Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
* Moved to RMVXAce

Question!
Gw udah coba tapi lognya ko ga keluar itu kenapa ya? :lol:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 09:48
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#3
TroyZ 
Novice
Novice
TroyZ

Level 5
Posts : 193
Thanked : 5
Engine : RMVX Ace
Skill : Intermediate
Type : Scripter

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
:v itu masang scriptnya Mithran, pasang persis sebelum Main :swt: 
btw ini debug dari project ente yg pernah ente kasih ke ane  :3 https://www.dropbox.com/s/njsijhttgokwllp/gobj.txt
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 14:16
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#4
Heartbreak61 
Novice
Novice
avatar

Level 5
Posts : 177
Thanked : 4
Engine : RMVX Ace
Skill : Very Beginner
Type : Event Designer

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
selain Sprite sama Bitmap apa lagi yang bikin leak kk? :hmm:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 15:13
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#5
TroyZ 
Novice
Novice
TroyZ

Level 5
Posts : 193
Thanked : 5
Engine : RMVX Ace
Skill : Intermediate
Type : Scripter

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
ya rata2 yg bikin memory leak sampe crash begitu biasanya objek yang hilang namun ternyata masih ada, dan objek tsb tersimpan di memory, tdk pernah terpakai selama di memory. kalo soal script dgn proses banyak pun sebenarnya masih ambigu juga seh, soalnya kalo ga salah pernah ingat kalo setiap proses standar di script itu memakan 4 byte dari memory (kaek pernah liat di video tutorial rgss3, lupa juga seh) :hmm: :hmm:

ada juga line yg sia2 yg sengaja/tdk disengaja diselipkan di script dan membuat script bekerja lebih keras lagi. coba deh :
Code:
for i in 0..9999
Sprite.new
end

selipkan disalah satu script yg sudah ada, dan liat file gobj.txt bakal mendebug memory leak sebanyak 9999X  :shocked:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 22:30
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#6
Heartbreak61 
Novice
Novice
avatar

Level 5
Posts : 177
Thanked : 4
Engine : RMVX Ace
Skill : Very Beginner
Type : Event Designer

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
Itu 9999 kali dibikin tapi ga didispose, jelas aja bikin leak XD

Kalo

for i in 0..9999
x = Sprite.new
x.dispose
end

Mungkin cuma bikin lag tapi ga menimbulkan leak << ga penting banget

Well, jadi sementara kesimpulannya yang bikin leak cuma Sprite sama Bitmap yang ga di dispose ya? :hmm:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-23, 22:43
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#7
TroyZ 
Novice
Novice
TroyZ

Level 5
Posts : 193
Thanked : 5
Engine : RMVX Ace
Skill : Intermediate
Type : Scripter

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
hahaha, testing purpose only  XD  XD 

ya sejauh ini yg bisa ninggal di memory dan ga hilang kalo ga dihilangin itu kan Sprite doank :hmm:mungkin rgss punya objek lain yg tetap tinggal di memory dan terkadang Garbage Collector tidak bisa bekerja untuk objek ini (ga tau ya, hanya hipotesis =)))

jadi untuk sementara ini pemakaian objek Sprite aja yg pinter2 diakali biar ga leak ampe crash gitu  :thumbup: pengalaman lho di battle engine symphony, hanya karena shadow battler yg kaga kedispose dengan benar, Game.exe sampe crash, RMW ama sitenya yami juga ikut2an ngeributin hal serupa  :ckck:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-25, 18:53
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#8
LowlingLife 
Administrator
Administrator
LowlingLife

Kosong
Posts : 2000
Thanked : 25
Engine : Multi-Engine User
Awards:

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
Maaf hanya sekedar kasih tahu. Saya juga pernah lihat ada error kalau misalkan kebanyakan object/sprite yang tidak di-dispose sehingga membuat script jadi hang. Nah intinya kita harus hati-hati nge-check object/sprite yang sudah di-define.
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-25, 19:36
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
#9
TroyZ 
Novice
Novice
TroyZ

Level 5
Posts : 193
Thanked : 5
Engine : RMVX Ace
Skill : Intermediate
Type : Scripter

Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
LowlingLife wrote:
Maaf hanya sekedar kasih tahu. Saya juga pernah lihat ada error kalau misalkan kebanyakan object/sprite yang tidak di-dispose sehingga membuat script jadi hang. Nah intinya kita harus hati-hati nge-check object/sprite yang sudah di-define. 
object/sprite, berarti object laen bisa donk. hmm apa aja object yg bekerja seperti sprite (harus didispose manual dulu baru mau ilang)? :hmm: dan juga, itu hangnya cuman error script doank, ato udah sampe menghasilkan crash di Game.exe nya? :hmm:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty2013-12-25, 19:48
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
TheoAllen 
♫ RMID Rebel ♫
♫ RMID Rebel ♫
TheoAllen

Kosong
Posts : 4935
Thanked : 63
Awards:




Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
Mampir kesini aja deh http://forums.rpgmakerweb.com/index.php?/topic/20738-remove-bitmap-dispose-in-animation-is-it-a-good-idea/

Mungkin itu maksudnya memory leak :hmm:
Hindari Crash VXAce Karena Memory Leak & Object Undisposed Empty
PostRe: Hindari Crash VXAce Karena Memory Leak & Object Undisposed
Sponsored content 




Hindari Crash VXAce Karena Memory Leak & Object Undisposed Vide
 

Hindari Crash VXAce Karena Memory Leak & Object Undisposed

Topik sebelumnya Topik selanjutnya Kembali Ke Atas 

Similar topics

+
Halaman 1 dari 1

Permissions in this forum:Anda tidak dapat menjawab topik
RPGMakerID :: Engines :: RMVX Ace-