This will at least somewhat improve performance, as confirmed through microbenchmark testing.
const fields are replaced with literal values in the Assembly's IL code, while static readonly fields may be optimized by the JIT, and is not guaranteed to happen. const fields may also lend themselves to stronger optimizations at runtime.
We use a case incensitive collation, utf8_general_ci, so we do not need to specify StringComparison when querying the database.
Previously, this LINQ expression was done client side in the older EF versions.
This is significantly faster than what is currently in master, and just slightly slower than PR #3582
It is now a single threaded operation, just like #3582 but instead of stitching the objects together manually, it lets EF stitch the objects together.
EF Tracking is required for the stitching to work.
This is the recommended pattern for these types of actions when dealing with EF.
I think similar improvements can be made to startup player caching
* minor performance improvements to AssignMagic()
* minor performance improvements to material / color caches
* adding comment
* updating to latest master branch
* updating to latest master branch
* Check player names against creature names in world db
- Disable creating players with names of creatures in world
- Adjust other checks
* Update WorldDatabaseWithEntityCache.cs
* add support for 'crafting chance of success dialog' player option to regular recipes
* adding logic for drid
* broadcasting icon underlay changes for all recipe mods
* update comment
* updates
* adding server option for 'craft_exact_msg'
* .
* retail server netsend all property updates in recipe mod, including internal
* adding /clearcache recipe
* .
* using pre-existing method
* updating AddSpell
* updating AddSpell imbues - already handled in recipe mods
* updating logic for sendMsg
* further updates
* exclude non-armature imbues on trinkets
* adding shard fix for existing trinkets with invalid imbues
* adding newline
* updating AuditItemSpells for new scenario
* fixing /ciloot tier
* update hotspot cycle variance to use standard formula
* Step 1. Add new adapter classes and models
All classes and objects added are in new namespaces.
This add has 0 interraction on existing ACE code.
This sets the groundwork for Step 2. Moving World DB caching to the new models
* first part of the world entity usage
* almost there
* final part
* update WeenieExtensions
* fix
* merge fixes and improvements
* More code ported from Step 3
* Update WorldDatabaseWithEntityCache.cs
* GetCachedCookbooks(recpieId) -> GetCookbooksByRecipeId(recpieId)
* build fix
* changelog