1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

v2.17.0 - Substantial Performance Upgrades

Discussion in 'Announcements' started by Party, Apr 10, 2017.

  1. Party

    Party Client Developer

    Joined:
    Oct 12, 2015
    Messages:
    3,708
    Likes Received:
    1,606
    This week brings some very substantial performance upgrades, particularly around the QueryBuilder framework, but also to a lesser extent throughout the rest of the API. I hope everyone will join me in thanking @Cloud as this has not been a small undertaking and he's worked tirelessly to get these upgrades delivered properly (detailed below).

    We've also implemented some fixes in various key parts of the API which have been causing issues, including banking interaction, world hopping and interface closers.

    Let's get started...

    Client
    BotLogger
    • Complete overhaul of the BotLogger.
    • Most significantly, we have introduced a total of 6 logging levels: OFF, SEVERE, WARN, INFO, DEBUG, FINE.
    • To adjust your logging level and to see descriptions of each of the levels, visit the Preferences tab in the client.
    • Added Environment.getLogger() for slightly easier access.
    • Calling Environment.getLogger() where a bot's logger cannot be found will return a shared log file.
    • Deprecated #log(Object), #err(Object) and #verbose(Object). Replacements for each will be found in the documentation next time it is regenerated.
    • Deprecated BotLogger.Message#getType().
    • Added BotLogger.Message#getLevel().
    • Added #println(BotLogger.Level, Object), #severe(Object), #info(Object), #fine(Object).
    • Updated various aspects of the API to use the new logging features.
    • As a reminder to Bot Authors, all pushes which don't make proper use of this will be declined.
    Verbose mode/Environment
    • Removed support for the -verbose program argument.
    • This will now be handled directly by the BotLogger Level selected within the client.
    • For this reason, Environment.isVerbose() has been deprecated.
    Tray notifications
    • Tray notifications sent from the client/game-event handlers are now distinguished from those sent by Bot Authors in their bots.
    • Users can decide whether they want to receive client and/or bot notifications (or neither!) via the Preferences page in the client.
    Java Agents
    • We have now white-listed the default Java Agent used by IntelliJ 2017.

    Hybrid
    QueryBuilder
    • All QueryBuilders now take full advantage of the Java 8 parallel streams, meaning arguments are filtered at the same time in parallel rather than sequentially, causing a significant performance increase.
    • This means that all bots will correctly scale across all CPU cores.
    • This is a major overhaul and was probably a bigger task than Cloud thought it would be at first (judging by the number of commit messages I've been seeing come in for at least the past week!).
    • Cloud will be continuing to work on this over the coming weeks and then we will be able to see the full extent of the performance upgrades made from start to finish.
    Menu Interaction
    • We've been working on specific scenarios where menu interaction was particularly weak, such as in banking and with other storage-related SpriteItems.
    • At the moment this covers: Bank#withdraw() and #deposit() and BeastOfBurden#store() and #withdraw()
    • Cloud identified that this was caused by several unnecessary calls being made to determine whether or not the Menu contained the desired action.
    • More changes will be made to this in the coming updates which should further improvements to a potential fix that has plagued Bank interaction for some time.
    AbstractBot
    • Cloud has implemented a potential fix for the infamous onStart() bug!
    • This bug meant that occasionally onStart() would throw an exception, crashing the bot instantly.
    Camera
    • Fixed an issue where Camera.turnTo() or .concurrentlyTurnTo() would turn the "wrong" direction.
    • Added a PlayerSense key to determine a characters bias towards turning the camera left/right.
    • Fix provided by @Guru.
    CoordinatePath
    • Optimized the query used to find the next Coordinate when calling CoordinatePath#step().
    BoundModel
    • Minor optimizations to the bounding model projection queries.
    ChatboxListener
    • Massively improved the performance of the ChatboxListener's EventDispatcher.
    EnterAmountDialog
    • When entering values divisible by a factor of 1000, EnterAmountDialog now has the chance (based on PlayerSense) to convert this into decimal format.
    • eg. 1000 -> 1k
    • eg. 5,200,000 -> 5200k
    • eg. 10,000,000 -> 10m

    RS3
    SpriteItem
    • Fixed a bug where SpriteItem interaction would not work whilst the player was in combat, meaning it could not eat food etc.
    Interface Closers
    • Added the Management Windows, Options Menu, Ribbon Setup and Acorn Clan Cup Interface Closers.
    • Optimized various existing closers.
    OSRS
    ControlPanelTab
    • Added ControlPanelTab.WORLD_HOP.
    • ControlPanelTab.LOGOUT.isOpen() and .open() now account for whether or not ControlPanelTab.WORLD_HOP.isOpen().
    WorldHop
    • Fixed a bug where WorldHop was unable to open the WorldHop interface.
    • Optimized InterfaceComponent queries.
    Bank
    • Fixed a bug where Bank.deposit(SpriteItem, int) where the int == 0 would cause RuneMate to manually type "0" when the amount dialog was shown.
    InterfaceCloser
    • Fixed the Poll Both interface closer by updating the InterfaceContainer index in the QueryBuilder.
     
    #1 Party, Apr 10, 2017
    Last edited: Apr 10, 2017
    proxi, doppelganger, auxi and 13 others like this.
  2. Darkkenshi

    Joined:
    Jan 19, 2017
    Messages:
    75
    Likes Received:
    23
    Thanks for the update.
     
    Zyzz likes this.
  3. Guru

    Joined:
    Dec 31, 2015
    Messages:
    602
    Likes Received:
    175
    Zyzz likes this.
  4. Gengsta

    Gengsta Community Manager

    Joined:
    Apr 7, 2015
    Messages:
    1,392
    Likes Received:
    763
    Amazing work, kudos to everyone involved! (hehe @Party + @Cloud) <3
     
    Zyzz likes this.
  5. Boot

    Joined:
    Apr 21, 2015
    Messages:
    389
    Likes Received:
    83
    Awesome work. Massive change log. Love it. Thank you.
     
  6. sickness0666

    Joined:
    Mar 14, 2017
    Messages:
    156
    Likes Received:
    48
    big changelog :) cant wait to try out the changes. especially that onstart bug, sucks when developing and bot crashing multiple times when starting and then having to restart client because it has run out of memory
     
  7. archnemesis

    Joined:
    Oct 27, 2016
    Messages:
    91
    Likes Received:
    8
  8. Jhinn

    Joined:
    Jun 9, 2015
    Messages:
    3,646
    Likes Received:
    1,337
    Thank you guys!!
     

Share This Page

Loading...