Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/01/22 in Posts

  1. So long yaml-cpp, hello rapidyaml! As of Git Hash: d1b7061, rAthena has transitioned from using yaml-cpp as the 3rd party tool for parsing YAML files to rapidyaml (or ryml). What this means: The yaml-cpp library gave us a great start into the world of yaml, but as we made more conversions of our databases from CSV to YAML, the load time began to grow. The ryml content is parsed into a single index-based array which is not like any standard STL. On average, ryml parses YAML at about ~150MB/s on Linux and ~100MB/s on Windows (vs2017). Compared to yaml-cpp, ryml is in general between 10 and 70 times faster! An optimization was also made to itemdb_searchname1 function which reduced its complexity to constant. Item database parsing function also has reduced complexity to linear complexity. This results in reduced loading time in debug mode to a fifth compared to using yaml-cpp! What this means to developers: Overall testing and usage of rAthena is much faster, in debug and release modes. We’ve kept our YamlDatabase class the same! This means that over 99% of the structure from using yaml-cpp carried over to ryml in terms of source side work. The YAML files themselves require no updates or changes! Other than that, enjoy the extra speed! Thanks to @Lemongrass, @Secrets, and @nitrous for their help in getting this implemented! PS: I realize I posted this on April 1st, but I can guarantee this update is quite the contrary!
    4 points
  2. For some reason this reply displayed for me today. Maybe some bug with the year? Anyway, if you still want the answer - I honestly don't understand how you can even reach that conclusion. When adding hexadecimals there's no number over flow. You just add per digit. Take a look at the second digit from the right, you will have: 0 + 1 + 2 + 8 + 0 + 0 + 0 + 0 + 0 +0 = 11 11 in hexidecimal is a B. So the result for the second digit from the right is B. You do the same for every digit.
    1 point
×
×
  • Create New...