1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2025-01-22 04:31:13 +01:00
No description
Find a file
epriestley 7c502e3e4e Fix performance issue with large changesets in Differential
Summary:
Fixes T3151. Javelin treats a behavior without parameters as a global behavior and invokes it only once no matter how many times it is initialized (this is necessarily correct for any reasonable behavior, as the inputs do not vary). A recent patch changed `differential-dropdown-menus` from a zero-argument global behavior to an implicitly nonzero-argument behavior by adding `pht`.

Currently, we initialize the behavior next to dropdown menu creation, so this resulted in `O(N^2)` initializations of the menus. For large diffs, this locks browsers. Instead, initialize outside of the dropdown loop so we ginitialize each menu just once.

Test Plan: Viewed a 2,000 file diff without browser lock.

Reviewers: wez, vrana, btrahan

Reviewed By: wez

CC: aran

Maniphest Tasks: T3151

Differential Revision: https://secure.phabricator.com/D5885
2013-05-10 05:39:44 -07:00
bin First Diff of Test Data Generator 2013-04-12 14:07:16 -07:00
conf Using PhabricatorExternalAccount 2013-04-28 13:22:33 -07:00
externals Add Balanced Payments API 2013-04-25 09:47:30 -07:00
resources Provide "builtin" files and use them to fix Pholio when files are deleted 2013-05-08 18:12:52 -07:00
scripts Put JX.phtize in package 2013-04-23 17:58:56 -07:00
src Fix performance issue with large changesets in Differential 2013-05-10 05:39:44 -07:00
support Fail quietly when failing to write access log 2013-05-09 16:08:26 -07:00
webroot Clean up inline edit ui 2013-05-09 16:09:29 -07:00
.arcconfig Delete license headers from files 2012-11-05 11:16:51 -08:00
.divinerconfig Centralize rendering of application mail bodies 2012-07-16 19:01:43 -07:00
.editorconfig Specify config for text editors 2012-11-03 22:34:44 -07:00
.gitignore Ignore and README for support/bin 2013-04-03 12:58:39 -07:00
LICENSE Delete license headers from files 2012-11-05 11:16:51 -08:00
NOTICE Increment year. 2013-01-03 05:45:08 -08:00
README Fix typo in README 2013-03-13 15:03:55 -07:00

Phabricator is an 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.