EDIT: This module is not working as expected and amxmodx has this functionality integrated. So the test results are invalid. I will post the results using the amxmodx provided functions later.
This module can be very useful and can improve many plugins. (I assume that amxmodx don't have the functionality described bellow (without using this module)).
One particular example is:
Advanced Bans (Real Time) by Exolent
It serves as bridge between pawn and some C++ data structures. An example of its usage:
When you deal with data related to players you use an 33 cells array. If you want to check the data relative to one of the users you access
array[id]. It is the faster way possible because you just need to make one access to memory.
But what about if you have a list of strings?
If you have a list of strings and want to, as an example, check if a string that you have is in the list, you normally iterate over the full list and compare your string with each one from the list. (In the worst case). The performance of an algorithm that makes this is O(N). (N strings, N comparisons)
With ArrayX module you can speed up this process using a
Hash Table. It is a data structure that uses techniques to decrease the number of comparisons. Correct me if I'm wrong but i think its performance is O(log n).
Anyway using amxmodx profiler i made a test. The script and its measurement's output go as attachments.
It makes 10000 calls to a function that compares a steamID against a list of 22 steamID's.
With ArrayX it is 12x faster.