GINA triggers--suggestions to reduce lag

Discussion in 'The Veterans' Lounge' started by Mintalie, Aug 16, 2019.

  1. Mintalie Augur

    Piggybacking off Dhurgan's helpful posts in the GMM1 thread, can we get a consolidated thread of tips and tricks for reducing lag in GINA, such as the below?
  2. Horyuken Augur

    If you want to reduce lag in gina turn off everything outside of the current raids triggers. That's all you really need. Remove any trigger that isn't 100% needed. Triggers that tell you to recast epic etc aren't necessary.

    EDIT If you group you triggers correctly this is very easy to do and can be done with 2 -3 clicks of the mouse.
    NameAlreadyInUse likes this.
  3. svann Augur

    Check the 4th post in this thread. Mostly it is what you posted, but there are a few other suggestions and a way to measure which of your triggers are the worst offenders.
    https://forums.daybreakgames.com/eq/index.php?threads/gina-issues.230352/
    It does make a difference.
    -----------------------------------------------------------------
    You could also make a ramdisk. This is a bit more technical so I dont recommend to beginners, but if you are brave see kizants post on page 3 post 3.
    https://forums.daybreakgames.com/eq...h-ssd-should-i-buy.258898/page-3#post-3809930
    Scornfire, Sancus and Mintalie like this.
  4. Sancus Augur

    This intrigues me, but there's also some (seemingly) conflicting information here. Specifically:
    Is difficult to reconcile with:
    I have a basic understanding of how to use regex, but I have 0 educational/professional background in anything relating to it. That said, the conventional wisdom from people I've talked to is that including the ^ anchor makes a trigger faster/less expensive vs a basic string search.

    Sirene's post doesn't explicitly talk about string searches (the example she gives is already using a wildcard), but it does seem to imply that making the trigger fail faster (using the ^ rather than not using the ^) is better.

    I'm going to play around with this and the performance tab at raids, but if anyone has an answer before then I'd be interested in hearing it. It's entirely possible that it depends on the particular trigger I suppose, but a general rule of thumb for string searches would be helpful.
  5. Tucoh Augur

    Reducing latency in GINA is like most software optimization problems: Understanding the fundamentals of the system will get you part of the way there, but profiling the performance is your guiding light in the darkness that is optimizations.
    Metanis likes this.
  6. Teylana Elder

    My first GINA tip is to use it exclusively and delete all of your in game triggers. In-game triggers suck CPU cycles far less efficiently than GINA does.

    Beyond that, unless you've got an obscene number of triggers on a 12 year old computer, you're unlikely to see much lag from GINA. I've looked into it a d even while raiding, GINA doesn't come close to even begining to stress my system and I raid on a box that is hardly cutting edge.
    Metanis likes this.
  7. NameAlreadyInUse #CactusGate

    I think your plan to play around with the performance tab is the best bet, because different programming languages handle operations differently. But from my experience programming with regex, Sirene's statements are more often correct than Durghan's - although Durghan's definitely adhere to K.I.S.S. theory :)

    This is probably a bit of an oversimplification, but I'll take a stab at explaining why using a ^ (and therefore regex), is a huge time saver whenever possible:

    Let's say we want to check a sentence for the existence of the word "the" and let's say the sentence has 20 characters, including spaces. First, we take a look at the first three letters of the sentence, and if they happen to match "the", then we've finished our search and we only had to look at that sentence one time.

    But if the first three letters are not "the", then we have to do another search, this time on characters 2 through 4. If we still don't find "the", we need to search again and look at the next three characters, 3 through 5. If the sentence doesn't contain the word "the" anywhere, we will end up doing 18 searches in total (the 18th search will be looking at characters 18 through 20). This means that every character added to the line of text requires (at least) one more search.

    By using regex and adding the ^ to our search term (e.g. "^the"), we are telling the computer that we are only interested in searching lines that begin with the word "the". This means that we can stop searching the line of text after a single search, no matter how long it is.

    I would actually say/hypothesize that good regex will usually be better (more efficient) than a simple string comparison. It's pretty much why regex was invented :) And the example here is a very simple use of regex - it is a very powerful tool. But like any tool, it takes time and practice to master and can do more damage than good in the wrong hands :D
    Metanis, Teylana and Sancus like this.
  8. NameAlreadyInUse #CactusGate

    Edited: Every single enabled trigger is searching every single line added to your log file (at least once! Timers and other features and complex regex statements, can create multiple searches per trigger per line). So the efficiency of the individual triggers can have a huge impact, but so can the total number of enabled triggers.

    My specific GINA tips (adding to Horyuken's suggestions):
    • Maintain your own folder system in GINA and do not enable any triggers that you aren't currently using.
    • Create a folder in GINA for all new triggers that people send you. Mine is called "Imported".
    • Never use "Automatically Merge" when accepting GINA triggers. Instead, always manually merge them and put them inside your "Imported" folder.
    • Manually move triggers that you want to use out of the "Imported" folder and into your own folder structure.
    Accepting and enabling every trigger package that is shared with you will overwork your GINA and make a mess.
    Mintalie and Metanis like this.
  9. Lianeb Augur

    I personally have each trigger for an expac in a folder. When a new expac comes out I move that expac to an archive folder that is not enabled. If we happen to go back to that expac I enable that one for the duration and then disable when done. This limits the amount of active triggers to be searched and helps quite a bit.
    CrazyLarth likes this.