what's about boolean?? if we write null, it will be a syntax error
Printable View
what's about boolean?? if we write null, it will be a syntax error
Oia Lupa Boolean juga
diisi ENOL juga ga?? pa diisi false??
z
Boolean
Integer
Real
String
gx usa dinull, difalse, di0, atau diapa2in
zzz
ow
bzz
tq
mbzz
btw, ni thread ga di sticky? penting ne
Kalo sebuah object variable perlu di remove dari memory location lalu di nullify.
List Object Variable:
- Location
- Player
- Rect
- Group
- Force
Masalahnya kalo kamu remove object variable tersebut dari memory, maka di game tersebut juga akan hilang. Misalnya
Untuk location fungsi nya adalah:Code:globals
group udg_test = CreateGroup()
endglobals
function NullifyGroup takes nothing returns nothing
local group test = udg_test
call DestroyGroup(test)
call ForGroup(udg_test, DoNothing()) // Tidak akan berfungsi, game intepreter akan bingung manakah udg_test, karena sudah di remove.
set test = null
endfunction
RemoveLocation(location loc)
Jadinya untuk handling memory leak hanya berlaku buat location variable, dan variable2 tertentu yang hanya dipake sekali (tidak rekursif). Karena itu kalo ada leak di kode kamu coba bikin algorithm nya semaksimal mungkin efficient. Karena memory leak hanya nambah sekitar 1byte kepada memory usage. Tetapi bila di loop, lama-lama akan bertambah jadi 100mb dan lama-lama akan jadi lag.
The right way to nullify a location variable:
Code:function SpellTarget takes nothing returns nothing
local location l = GetSpellAbilityTarget()
call SpecialEffectOnLoc( l , "Nova")
call RemoveLocation(l) //Stop memory leak
set l = null //Stop memory leak
endfunction
Perasaan udah dikasih tau kaLau emang untuk yang udah kelar dipake -_-
Untuk list yang leak apa aja, banyak banget, silahkan liat di common.j @_@
All Players itu variable jadi kalo didestroy jadi ngaco
Sama nasibnya sama Rect Gameplay Area,
dimana function "Entire Map" (returns GetWorldBounds()) bakal ngecreate satu handle rect yang kalo gak diancurin bakal ngeLeak, n OK to destroy ngaco
Lain halnya dengan "Playable Map Area" (returns bj_playableMapArea) yang merupakan satu variable, bakal bum bum duar ngaco kalo didestroy
lagian ini kan buat GUI DoOs... :sob: ntar gw lanjutin buat JASSnya deh... (di GUI no locals, so no thing to null)
n untuk masalah yang kayak DoOs, jgn pernah set local jadi global dah gitu didestroy
cukup null but don't destroy
Ini bukan masalah, tetapi kalo kamu "sering" program pake JASS pasti akan ketemu halangan seperti ini dimana kamu harus handle group leak di algorithm yang rekursif, jadinya bagaimanapun juga kamu pasti akan dapat leak walaupun hanya di null.Quote:
n untuk masalah yang kayak DoOs, jgn pernah set local jadi global dah gitu didestroy
cukup null but don't destroy
Dan secara logika tidak ada cara yang pasti buat handle leak di GUI. Karena GUI membuat segment-segment BJ.
Karena itu kalo kamu coba bikin tutorial di wc3campaigns atau hiveworkshop, akan selalu diminta untuk menempatkan tex "Best written in JASS", karena banyak orang yang punya pengalaman mengalami bahwa map-map mereka yang berbasis GUI makin lama di update makin ngelag.
problem gw tuh.. @_@
map gw rasanya masi ngelag aj, apalagi tambahin weather effect..
gw selalu pake JASS,
tapi,
Gw gak pernah kena masalah macem ini, karena semua global variable yang rekursif bakal ditahan active sampe game kelar.
null untuk hilangkan leak dari local, dan untuk leak dari handle bisa ditunggu sampe last use of the variable, atau untuk yang permanent variable ditunggu sampai game selesai. (Global kan? Kalau mau dipake lagi jangan diancurin, sampe yakin gak bakal dipake lagi.)
Memang GUI tidak bisa menghilangkan local leak.
Karena function2 BJ semuanya kagak null local
Tepat sekali untuk yang ketiga
Swt dah @@, makanya saya bilang kalo "sering" programming jass kamu pasti akan menemukan halangan ini, seperti membikin spell... makanya Vexorian ngebikin CS caster system ama Handle struct. Kalo group nya global yah itu mah standard, tetapi kalo misalnya kamu harus construct group setiap loop untuk spell effect gmn coba? Setiap rekur akan ada memory leak.... Makanya di design CS caster system yang free lag.
Masa Spell Rekursif -_-
adakah spell yang permanent sampe game end bzzz