mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-28 17:52:43 +01:00
1f3fcce6fe
Summary: Ref T11954. Depends on D16993. We have a couple of "look up the class for this key" queries which are costly enough to show up on a profile. These aren't huge wins, but they're pretty easy. We currently do this like this: ``` $class_map = load_every_subclass(); return idx($class_map, $key); ``` However, we don't need to load EVERY subclass if we're only looking for, say, the Conduit method subclass which implements `user.whoami`. This allows us to cache that map and find the right class efficiently. This cache is self-validating and completely safe even in development. Test Plan: - Used `curl` to make queries to `user.whoami`, verified that content was identical before and after the change. - Used `ab -n100` to roughly measure 99th percentile time, which dropped from 74ms to 65ms. This is a small improvement (13% in the best case, here) but it benefits every Conduit method call. Reviewers: chad Reviewed By: chad Maniphest Tasks: T11954 Differential Revision: https://secure.phabricator.com/D16994 |
||
---|---|---|
.. | ||
__tests__ | ||
garbagecollector | ||
management | ||
spec | ||
storage | ||
PhabricatorCachedClassMapQuery.php | ||
PhabricatorCaches.php | ||
PhabricatorKeyValueDatabaseCache.php |