Configuring an Issue Tracker slows down the creation of the commit widget significantly

Angel Ezquerra avatarAngel Ezquerra created an issue

When an issue tracker is configured, the creation of the commit widget takes significantly longer than usual because TortoiseHg creates the COM object that talks to the Issue Tracker plugin in the Commit Widget constructor.

This can take a significant amount of time, even on a pretty powerful machine (e.g. loading the JiraSVN plugin takes more than 0.4 seconds on a modern PC with a quad-core CPU, 8 GByte of RAM and an SSD hard drive). I've seen older machines take several seconds to create the commit widget because of this. Creating the COM object "freezes" the TortoiseHg workbench GUI.

Since this must be done for every repository, the effect is a significant slowdown of the TortoiseHg workbench.

Comments (1)

  1. Steve Borho

    commit, bugtraq: delay the bugtraq button setup to speed up the commit widget creation (closes #1734)

    Creating the bugtraq button on the Commit widget takes time because we must create an IBugTraqProvider2 COM object. On a pretty powerful machine takes 0.4 seconds or less (and it can take several seconds on a less powerful machine).

    The solution is to create a "disabled" placeholder button, and setup the button (with the corresonding COM object creation) after the commit widget has been created (100 ms), at which point the button can be enabled.

    The result is that the commit widget is created as fast as if no issue tracker was configured.

    dca424626920

  2. Log in to comment
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.