mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-28 17:37:18 +00:00
[Performance] Reworked how all log calls are made in the source, see changelog.txt for more details
This commit is contained in:
@@ -1,5 +1,22 @@
|
||||
EQEMu Changelog (Started on Sept 24, 2003 15:50)
|
||||
-------------------------------------------------------
|
||||
== 4/1/2017 ==
|
||||
Akkadius: [Performance] Reworked how all log calls are made in the source
|
||||
- Before we used Log.Out, we will now use a macro Log(
|
||||
- Before: Log.Out(Logs::General, Logs::Status, "Importing Spells...");
|
||||
- After: Log(Logs::General, Logs::Status, "Importing Spells...");
|
||||
- The difference is
|
||||
1) It's 200-300x faster especially when log statements are inside very hot code paths. We already
|
||||
had most hot paths checked before we logged them, but this blankets all existing logging calls now and not just the
|
||||
select few we had picked out in the source.
|
||||
2) Strings don't get copied to the stack, popped and pushed constantly even when we hit a log statement that
|
||||
actually isn't going to log anything.
|
||||
- We do an 'if (LogSys.log_settings[log_category].is_category_enabled == 1)' before we call a log function
|
||||
in the log macro so the log function doesn't get called at all if we're not logging the category
|
||||
- This has increased binary executables roughly 15KB
|
||||
- The old extern for EQEmuLogSys is now named LogSys appropriately instead of Log (Ex: LogSys.StartFileLogs())
|
||||
- The result keeps logging footprint non-existent for when we're not logging that category
|
||||
|
||||
== 03/30/2017 ==
|
||||
Akkadius: [Performance] Fixed an overhead issue where many hot paths would trigger quest subroutines and beneath that the code would
|
||||
try to see if a quest existed perpetually (checking if file exists) even though it should have determined the quest
|
||||
|
||||
Reference in New Issue
Block a user