T32 and CTL are quite similar, TimerUtils however is something completely different.
Il start with TimerUtils:
TimerUtils is what you want to use if you need to use single timers to delay or time stuff.
Timerutils basically covers these two things:
1. Recycling Timers: this is a performance feature, it simply means you dont always create a new timer handle but check if there is an old unused one.
2. Data Attaching: TimerUtils allows you to attach an integer value (or a struct instance) to a timer. This is nothing too fancy and can simply be done with a hashtable, but using TimerUtils its much more comfortable because all you have to do is to call a single function.
T32 / CTL:
Imagine you have a struct that does something periodic. Instead of starting a new timer for each instance of that struct you can use a single timer that always runs and make it loop through all the instances of your struct.
The benefits are: 1. You only need one single timer handle, but mostly 2. You dont have to attach stuff to the timer, which is a great performance gain since you dont need a hashtable this way.
This is exactly what these two libraries do for you, they handle the timer and the list that keeps track of all the instances of your struct. All you have to do is define one function with the code that shall run periodically.
Usually these libraries are used for Periodic Spells, Knockbacks, Missiles,
1. do you mean TimerUtils should not be used in periodic timer? I use it all the time and seems functioning well. Or do you mean TimerUtils is less accurate than the other twos?
2. do the other two, CTL or T32 require vJass? or can I use it in Jass just like Malhorne said?
3. With regard to CTL and T32, which one is better? Are they substitutable for each other?
1. No, TimerUtils works just fine with periodic timers. But if you have several instances of the same struct that all do something periodic then T32/CTL will be more comfortable to use and lead to a slightly better performance.
2. Yes, they are vJass.
3. T32 and CTL are two very sophisticated libraries and both work really well. Just use the one your resources require ... (Libraries from TheHelper.net usually require T32 while most resources from Hive use CTL).
1. You can use it, but that would use a lot of memory, thus degrading performance.
I disagree, TimerUtils is designed for excessive use of timers and will still perform perfectly well in any scenario where T32 and CTL are usually prefered.