Which is faster?

NoobImbaPro

You can change this now in User CP.
I've got two codes that do the same thing, which is faster and why?
JASS:
method iterate takes code func returns nothing
    local trigger temp = CreateTrigger()
    local thistype cnt = this.guard
 
    call TriggerAddAction(temp, func)
 
    loop
        set cnt = cnt.next
    exitwhen cnt == cnt.guard
        set enumerable = cnt
        call TriggerExecute(temp)
    endloop
 
    call DestroyTrigger(temp)
    set temp = null
endmethod


JASS:
method iterate takes string funcname returns nothing
    local thistype cnt = this.guard
 
    loop
        set cnt = cnt.next
    exitwhen cnt == cnt.guard
        set enumerable = cnt
        call ExecuteFunc( funcname )
    endloop
 
endmethod
 
They both suck :\

JASS:
List list = List.create()
local integer sentinel = list
//populate
 
loop
    set list = list.next
    exitwhen list == sentinel
 
    //code
endloop
 

PurgeandFire

zxcvmkgdfg
The second one is faster (according to old benchmarks), but some people stray away from it. There isn't really anything wrong with ExecuteFunc any more iirc (optimizer doesn't break it, and it doesn't crash when an invalid func is put in)

However, triggers are usually failsafe. If the function does not exist, it will throw an error. For ExecuteFunc, it just won't work. That's why some may prefer to use triggers. However, dynamic triggers (creating and destroying) are usually unnecessary. For example, if you just need to start a new thread or w/e, you can simply save the triggeraction to a local, execute the trigger, and then TriggerRemoveAction. Just use one global trigger, that way you don't need to destroy it.

I think some people said that TriggerEvaluate also runs on a new thread, but I can't confirm that. However, it may be something worth trying since TriggerEval is faster. (again, according to old benchmarks. Some things might've changed since)
 
General chit-chat
Help Users
  • No one is chatting at the moment.
  • Ghan Ghan:
    Seeing J4L is definitely a blast from the past.
  • Jesus4Lyf Jesus4Lyf:
    Oh hey Ghan! Long time. :)
    +1
  • jonas jonas:
    J4L! What has happened in your life
  • Jesus4Lyf Jesus4Lyf:
    Hmm, how to summarize... Moved to the USA and got married. Became a professional software engineer and solution lead. Learning Godot for game dev. :)
  • jonas jonas:
    So you are pursuing game dev as a hobby? What industry is your dayjob in?
  • jonas jonas:
    FAANG?
  • Jesus4Lyf Jesus4Lyf:
    Not quite FAANG, less pay for a less hours/stress. Yeah, game dev as a hobby.
  • jonas jonas:
    makes sense. Do we have a hobby game dev subforum to showcase some work?
  • Blackveiled Blackveiled:
    Happy Thursday
    +1
  • The Helper The Helper:
    Happy Thursday!
  • The Helper The Helper:
    TGIF!
  • The Helper The Helper:
    hey tom_mai please do not archive anymore news
  • Ghan Ghan:
    AMD Ryzen 7000 next week :D
    +1
  • The Helper The Helper:
    noice!
  • tom_mai78101 tom_mai78101:
    "hey tom_mai please do not archive anymore news" ----> Got it. What should we do with the "News Archive" subforum?
  • The Helper The Helper:
    I think leave it for real old news that cannot be sorted the reason we had it in the first place was a server issue that we do not have anymore. I don't want to get rid of the archive just not put anything in it for now until we figure it out more
  • The Helper The Helper:
    The side chat has nothing on the discord. it is not possible but the biggest thing on my wish list right now is a sidechat channel on the disord that hooks up to this...
  • Ghan Ghan:
    I've been selected for the Diablo IV beta.
    +1
  • Ghan Ghan:
    Woo!
    +1
  • The Helper The Helper:
    that is so cool
  • V-SNES V-SNES:
    Eh just noticed the new discord section on the side. Looks great!
    +1
  • Blackveiled Blackveiled:
    :( feels bad I can't ever get selected for any beta I sign up for. It's annoying as heck.
    +1
  • The Helper The Helper:
    Hello mgarcia! Happy Monday everyone!

    The Helper Discord

    Members online

    No members online now.

    Affiliates

    Hive Workshop NUON Dome World Editor Tutorials

    Network Sponsors

    Apex Steel Pipe - Buys and sells Steel Pipe.
    Top