view contrib/wix/guids.wxi @ 26945:8a256cee72c8 stable

tags: create new sortdict for performance reasons sortdict internally maintains a list of keys in insertion order. When a key is replaced via __setitem__, we .remove() from this list. This involves a linear scan and array adjustment. This is an expensive operation. The tags reading code was calling into sortdict.__setitem__ for each tag in a read .hgtags revision. For repositories with thousands of tags or thousands of .hgtags revisions, the overhead from list.remove() noticeable. This patch creates a new sortdict() so __setitem__ calls don't incur a list.remove. This doesn't appear to have any performance impact on my Firefox repository. But that's only because tags reading doesn't show up in profiles to begin with. I'm still waiting to hear from a user with over 10,000 tags and hundreds of heads on the impact of this patch.
author Gregory Szorc <gregory.szorc@gmail.com>
date Thu, 12 Nov 2015 13:16:04 -0800
parents 95e042d77a5f
children e9857fbfd072
line wrap: on
line source

<Include>
  <!-- These are component GUIDs used for Mercurial installers.
       YOU MUST CHANGE ALL GUIDs below when copying this file
       and replace 'Mercurial' in this notice with the name of
       your project. Component GUIDs have global namespace!      -->

  <!-- contrib.wxs -->
  <?define contrib.guid = {4E11FFC2-E2F7-482A-8460-9394B5489F02} ?>
  <?define contrib.vim.guid = {BB04903A-652D-4C4F-9590-2BD07A2304F2} ?>

  <!-- dist.wxs -->
  <?define dist.guid = {CE405FE6-CD1E-4873-9C9A-7683AE5A3D90} ?>
  <?define lib.guid = {91D53B14-E924-432A-ACA2-65F9B3F7C56A} ?>

  <!-- doc.wxs -->
  <?define doc.hg.1.html.guid = {AAAA3FDA-EDC5-4220-B59D-D342722358A2} ?>
  <?define doc.hgignore.5.html.guid = {AA9118C4-F3A0-4429-A5F4-5A1906B2D67F} ?>
  <?define doc.hgrc.5.html = {E0CEA1EB-FA01-408c-844B-EE5965165BAE} ?>
  <?define doc.style.css = {172F8262-98E0-4711-BD39-4DAE0D77EF05} ?>

  <!-- help.wxs -->
  <?define helpFolder.guid = {9FA957DB-6DFE-44f2-AD03-293B2791CF17} ?>

  <!-- i18n.wxs -->
  <?define i18nFolder.guid = {1BF8026D-CF7C-4174-AEE6-D6B7BF119248} ?>

  <!-- templates.wxs -->
  <?define templates.root.guid = {437FD55C-7756-4EA0-87E5-FDBE75DC8595} ?>
  <?define templates.atom.guid = {D30E14A5-8AF0-4268-8B00-00BEE9E09E39} ?>
  <?define templates.coal.guid = {B63CCAAB-4EAF-43b4-901E-4BD13F5B78FC} ?>
  <?define templates.gitweb.guid = {827334AF-1EFD-421B-962C-5660A068F612} ?>
  <?define templates.json.guid = {F535BE7A-EC34-46E0-B9BE-013F3DBAFB19} ?>
  <?define templates.monoblue.guid = {8060A1E4-BD4C-453E-92CB-9536DC44A9E3} ?>
  <?define templates.paper.guid = {61AB1DE9-645F-46ED-8AF8-0CF02267FFBB} ?>
  <?define templates.raw.guid = {834DF8D7-9784-43A6-851D-A96CE1B3575B} ?>
  <?define templates.rss.guid = {9338FA09-E128-4B1C-B723-1142DBD09E14} ?>
  <?define templates.spartan.guid = {80222625-FA8F-44b1-86CE-1781EF375D09} ?>
  <?define templates.static.guid = {6B3D7C24-98DA-4B67-9F18-35F77357B0B4} ?>

  <!-- mercurial.wxs -->
  <?define ProductUpgradeCode = {A1CC6134-E945-4399-BE36-EB0017FDF7CF} ?>

  <?define ComponentMainExecutableGUID = {D102B8FA-059B-4ACC-9FA3-8C78C3B58EEF} ?>

  <?define ReadMe.guid = {56A8E372-991D-4DCA-B91D-93D775974CF5} ?>
  <?define COPYING.guid = {B7801DBA-1C49-4BF4-91AD-33C65F5C7895} ?>
  <?define mercurial.rc.guid = {1D5FAEEE-7E6E-43B1-9F7F-802714316B15} ?>
  <?define mergetools.rc.guid = {E8A1DC29-FF40-4B5F-BD12-80B9F7BF0CCD} ?>
  <?define ProgramMenuDir.guid = {D5A63320-1238-489B-B68B-CF053E9577CA} ?>

</Include>