Very high Handles count

kalee

New Member
Reaction score
0
Hello, i'm still new at mapping so don't blame me for my inexperience :p

Well, straight to the problem now. i've started making a map and i've noticed after some time, the map start lagging so i figured it was related to handles. i downloaded 2 handles counters, with one working at a time, so they wouldn't cause problems to each other. Both counters say : 9000 starting handle and they grow with at least 70 handle / second. i figured that was abnormal so i'm asking you guys, what could be the problem. tryed to remove any leak i'm aware of ( Units, Groups, etc .. ) without success. Starting Handle id still big and so is the their growth.

if you anyone have sometime to spare with Mapper Newbie Fellow, i can even past the triggers if its necessary, this community is most trustful. Thanks.

kalee
 

kalee

New Member
Reaction score
0
Hello Jesus4Lyf, thanks for your reply, i tried your system this morning, all it showed me is : 750 Group average and 350 Fog functions. does this mean there is some groups leaking ? your system tells me there is no timer nor Agent working ( always 0 ) which is a bit weird too :s hope to hear from ya soon
 

Jesus4Lyf

Good Idea™
Reaction score
397
it showed me is : 750 Group average and 350 Fog functions. does this mean there is some groups leaking ?
Probably. :thup:
Whatever is increasing is leaking.
You might be leaking handles themselves, which Agent Stats does not detect (I think).

Edit:
>350 Fog functions
That might be a bug. I need to look into it. :p

Edit: FogStates are probably actually handle id leaks, where the agent is destroyed but the handle id has local var references to it (not setting vars to null when you're done). .. Something like that. The counters are never completely accurate, either, by the way. :p
 

Azlier

Old World Ghost
Reaction score
461
Well, doodads aren't handles.
 

kalee

New Member
Reaction score
0
Yeah i do have multiple destructibles preplaced (about 200 hundred) but still, 9000 as starting handles still a lot and the 70-90 growth as well. Help :(
 

Anachron

New Member
Reaction score
53
Well, you should check every periodic trigger and give us the code to see where the leaks are.
 

kalee

New Member
Reaction score
0
there is like too much triggers in the map, i can send the hole map but it'd be a burden for you guys :( isn't that right
 

Anachron

New Member
Reaction score
53
Only the triggers that run very smoothly/periodily.
This counts in triggers with wait, triggers which have timers experied as an event or triggers that run themself in an endless loop.
 

kalee

New Member
Reaction score
0
re and hi, well i just can't pick one random spell among tons, if one of you guys is welling to help, i'll be more than happy to send him the map via pm. just tell me .. cause i just can't figure out where's the handles ID leaking.
 

Anachron

New Member
Reaction score
53
If the spells are downloaded from an website with approval system it shouldn't be a spell.
And yeah, you can submit it here. We won't steal anything. Atleast I wouldn't.
 

kalee

New Member
Reaction score
0
i know you wouldn't steal Anachron, i trust you completly :)

edit : i've sent you the map's link via pm, i hope you have some time to help me on this one.
 

kalee

New Member
Reaction score
0
it seems i've found out one of the problems thats making the handle ids grow faster, and this is the trigger ( it's basically an aura that freezes the enemy's animation and use an sfx on it, like the dota does with Darkterror ( faceless void ) any idea how to make the trigger work better, cause its still getting the hanles higher for some reason :( ,
JASS:

scope TimeLockSfx initializer Init
globals
private string s = "Abilities\\Spells\\Undead\\AbsorbMana\\AbsorbManaBirthMissile.mdl"
private group Group = CreateGroup()
endglobals
private function Cond takes nothing returns boolean
    if ( not ( UnitHasBuffBJ(GetEnumUnit(), 'B014') == false ) ) then
        return false
    endif
    return true
endfunction

private function EffectsEnd takes nothing returns nothing
local unit u = GetEnumUnit()
    if ( Cond() ) then
        call SetUnitTimeScalePercent( u, 100 )
        call GroupRemoveUnitSimple( u, Group )
    else
    endif
    set u = null
endfunction

private function cond2 takes nothing returns boolean
    return ( UnitHasBuffBJ(GetFilterUnit(), 'B014') == true )
endfunction

private function effects takes nothing returns nothing
local unit dum = GetEnumUnit()
    call DestroyEffect(AddSpecialEffectTarget(s,dum,"overhead"))
    call DestroyEffect(AddSpecialEffectTarget(s,dum,"chest"))

    call SetUnitTimeScalePercent( dum, 0.00 )
    call GroupAddUnitSimple( dum, Group )
set dum = null
endfunction

private function Actions takes nothing returns nothing
local group G = CreateGroup()
    call ForGroup( Group, function EffectsEnd )
    set G = GetUnitsInRectMatching(GetPlayableMapRect(), Condition(function cond2))
    call ForGroupBJ( G, function effects )
    call GroupClear(G)
    call DestroyGroup(G)
endfunction

//===========================================================================
private function Init takes nothing returns nothing
local trigger t = CreateTrigger()
    call TriggerRegisterTimerEventPeriodic( t, 0.20 )
    call TriggerAddAction( t, function Actions )
endfunction
endscope
 

kalee

New Member
Reaction score
0
Very nice tutorial indeed :) Thanks Lehona and specially to incredible 4Lyf lol. still hunting those kinda leaks to make the map better. but the starting handle ID count highness is still a mystery, im slowly fixing the ID handle count growth though, it was about 80+ and now its about 30.
 

Lehona

New Member
Reaction score
12
Destructibles are also handles, don't forget that.

A constant grow of 30 handles/s is still too big
 
General chit-chat
Help Users
  • No one is chatting at the moment.

      The Helper Discord

      Staff online

      Members online

      Affiliates

      Hive Workshop NUON Dome World Editor Tutorials

      Network Sponsors

      Apex Steel Pipe - Buys and sells Steel Pipe.
      Top