mirror of
https://we.phorge.it/source/phorge.git
synced 2024-12-25 15:00:58 +01:00
7831b92427
Summary: This is kind of expensive and can be significant on, e.g., the Maniphest task list view. Do a little more caching and some clever nonsense to improve performance. Test Plan: Local cost on Maniphest "all tasks" view for this method dropped from ##82,856us## to ##24,607us## on 9,061 calls. I wrote some unit test / microbenchmark things: public function testGetIDCost() { $u = new PhabricatorUser(); $n = 100000; while ($n--) { $u->getID(); } $this->assertEqual(1, 1); } public function testGetCost() { $u = new PhabricatorUser(); $n = 100000; while ($n--) { $u->getUsername(); } $this->assertEqual(1, 1); } public function testSetCost() { $u = new PhabricatorUser(); $n = 100000; while ($n--) { $u->setID(1); } $this->assertEqual(1, 1); } Before: PASS 598ms testSetCost PASS 584ms testGetCost PASS 272ms testGetIDCost After: PASS 170ms testSetCost PASS 207ms testGetCost PASS 29ms testGetIDCost Also, ran unit tests. Reviewers: nh, btrahan, jungejason Reviewed By: nh CC: aran, epriestley, nh Differential Revision: https://secure.phabricator.com/D1291 |
||
---|---|---|
.. | ||
connection | ||
exception | ||
lisk/dao | ||
qsprintf | ||
queryfx |