mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-10 08:52:39 +01:00
No description
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 |
||
---|---|---|
bin | ||
conf | ||
externals | ||
resources | ||
scripts | ||
src | ||
support/aphlict | ||
webroot | ||
.arcconfig | ||
.divinerconfig | ||
.gitignore | ||
.gitmodules | ||
README |
Phabricator is a open source collection of web applications which make it easier to write, review, and share source code. Phabricator was developed at Facebook. This is an early release. It's pretty high-quality and usable, but under active development so things may change quickly. You can learn more about the project and find links to documentation and resources at: http://phabricator.org/ LICENSE Phabricator is released under the Apache 2.0 license except as otherwise noted. http://www.apache.org/licenses/LICENSE-2.0