1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-11-28 17:52:43 +01:00
phorge-phorge/src/applications/cache
epriestley 1f3fcce6fe Provide a cached class map query for making key-based class lookups more efficient
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
2016-12-06 08:34:29 -08:00
..
__tests__ Introduce a request cache mechanism 2015-06-04 17:27:31 -07:00
garbagecollector Provide bin/garbage for interacting with garbage collection 2015-10-02 09:17:24 -07:00
management Add --purge-user to bin/cache purge 2016-06-04 14:45:15 -07:00
spec Write 500 words on how to restart webservers 2015-12-02 09:16:10 -08:00
storage Fix visiblity of LiskDAO::getConfiguration() 2015-01-14 06:54:13 +11:00
PhabricatorCachedClassMapQuery.php Provide a cached class map query for making key-based class lookups more efficient 2016-12-06 08:34:29 -08:00
PhabricatorCaches.php Provide a pure APC cache for runtime caching 2016-12-06 08:34:13 -08:00
PhabricatorKeyValueDatabaseCache.php Cache generation of the SSH authentication keyfile for sshd 2016-10-21 07:29:40 -07:00