D868: changelog: use attrs instead of namedtuple

lothiraldan (Boris Feld) phabricator at mercurial-scm.org
Mon Oct 23 10:40:57 EDT 2017


lothiraldan added a comment.


  We detected a small performance regression on this changeset thanks to our ASV instance: http://perf.octobus.net/#regressions?sort=3&dir=desc (look for https://phab.mercurial-scm.org/rHGe51c8ffa1ffa3524e01cd1d1f60c79fc5ef02e43).
  
  It seems to have slow down enough `hg id -r .` on Mercurial repository and `hg diff` on a clean Mercurial repository for ASV to detect it as a regression.
  
  I'm dumping the raw results of asv compare because they are not available else-where if someone wants to take a look. Should I open a ticket on the bug tracker?
  
    Benchmarks that have stayed the same:
    
           before           after         ratio
         [765eb17a]       [e51c8ffa]
          82.2±0.01ms      83.8±0.01ms     1.02  basic_commands.LogTimeTestSuite.time_log_history('mercurial-2017', 10)
           218±0.01ms       221±0.06ms     1.01  basic_commands.LogTimeTestSuite.time_log_history('mercurial-2017', 100)
              1.25±0s          1.26±0s     1.00  basic_commands.LogTimeTestSuite.time_log_history('mercurial-2017', 1000)
              3.79±0s          3.79±0s     1.00  basic_commands.LogTimeTestSuite.time_log_history('mercurial-2017', 10000)
           150±0.02ms       152±0.01ms     1.01  basic_commands.LogTimeTestSuite.time_log_history('mozilla-central-2017', 10)
           165±0.02ms       166±0.01ms     1.00  basic_commands.LogTimeTestSuite.time_log_history('mozilla-central-2017', 100)
            359±0.1ms        362±0.1ms     1.01  basic_commands.LogTimeTestSuite.time_log_history('mozilla-central-2017', 1000)
              2.52±0s          2.52±0s     1.00  basic_commands.LogTimeTestSuite.time_log_history('mozilla-central-2017', 10000)
           102±0.01ms          103±0ms     1.02  basic_commands.LogTimeTestSuite.time_log_history('netbeans-2017', 10)
           138±0.01ms       140±0.02ms     1.01  basic_commands.LogTimeTestSuite.time_log_history('netbeans-2017', 100)
            369±0.2ms       371±0.08ms     1.00  basic_commands.LogTimeTestSuite.time_log_history('netbeans-2017', 1000)
             60.4±0ms         62.5±0ms     1.03  basic_commands.LogTimeTestSuite.time_log_history('pypy-2017', 10)
             78.1±0ms      80.1±0.01ms     1.03  basic_commands.LogTimeTestSuite.time_log_history('pypy-2017', 100)
           251±0.03ms       251±0.07ms     1.00  basic_commands.LogTimeTestSuite.time_log_history('pypy-2017', 1000)
           7.57±0.01s          7.59±0s     1.00  basic_commands.LogTimeTestSuite.time_log_history('pypy-2017', 10000)
               67.2ms           69.1ms     1.03  basic_commands.TestSuite.track_commit('mercurial-2017')
                2.79s            2.80s     1.00  basic_commands.TestSuite.track_commit('mozilla-central-2017')
                1.54s            1.54s     1.00  basic_commands.TestSuite.track_commit('netbeans-2017')
                192ms            194ms     1.01  basic_commands.TestSuite.track_commit('pypy-2017')
             38.2±0ms         39.9±0ms     1.05  basic_commands.TimeTestSuite.time_bookmarks('mercurial-2017')
             44.7±0ms         46.8±0ms     1.05  basic_commands.TimeTestSuite.time_bookmarks('mozilla-central-2017')
             43.4±0ms         45.5±0ms     1.05  basic_commands.TimeTestSuite.time_bookmarks('netbeans-2017')
             38.5±0ms         40.6±0ms     1.05  basic_commands.TimeTestSuite.time_bookmarks('pypy-2017')
             46.7±0ms         48.3±0ms     1.04  basic_commands.TimeTestSuite.time_diff_tip('mercurial-2017')
           656±0.07ms        659±0.2ms     1.00  basic_commands.TimeTestSuite.time_diff_tip('mozilla-central-2017')
           342±0.03ms       344±0.02ms     1.01  basic_commands.TimeTestSuite.time_diff_tip('netbeans-2017')
             55.6±0ms         57.3±0ms     1.03  basic_commands.TimeTestSuite.time_diff_tip('pypy-2017')
             43.9±0ms       46.1±0.2ms     1.05  basic_commands.TimeTestSuite.time_emptydiff('mercurial-2017')
           870±0.08ms       873±0.03ms     1.00  basic_commands.TimeTestSuite.time_emptydiff('mozilla-central-2017')
           408±0.08ms       410±0.02ms     1.01  basic_commands.TimeTestSuite.time_emptydiff('netbeans-2017')
          57.1±0.01ms         58.9±0ms     1.03  basic_commands.TimeTestSuite.time_emptydiff('pypy-2017')
             48.7±0ms         50.4±0ms     1.04  basic_commands.TimeTestSuite.time_emptystatus('mercurial-2017')
              1.25±0s          1.25±0s     1.00  basic_commands.TimeTestSuite.time_emptystatus('mozilla-central-2017')
            762±0.9ms        763±0.3ms     1.00  basic_commands.TimeTestSuite.time_emptystatus('netbeans-2017')
          66.2±0.01ms         67.8±0ms     1.02  basic_commands.TimeTestSuite.time_emptystatus('pypy-2017')
             45.0±0ms         46.7±0ms     1.04  basic_commands.TimeTestSuite.time_id('mercurial-2017')
            872±0.1ms       874±0.01ms     1.00  basic_commands.TimeTestSuite.time_id('mozilla-central-2017')
            413±0.1ms       416±0.04ms     1.01  basic_commands.TimeTestSuite.time_id('netbeans-2017')
             57.7±0ms      59.5±0.01ms     1.03  basic_commands.TimeTestSuite.time_id('pypy-2017')
             43.3±0ms         44.9±0ms     1.04  basic_commands.TimeTestSuite.time_id_current('mercurial-2017')
           131±0.02ms       133±0.01ms     1.02  basic_commands.TimeTestSuite.time_id_current('mozilla-central-2017')
          95.6±0.01ms      97.2±0.01ms     1.02  basic_commands.TimeTestSuite.time_id_current('netbeans-2017')
             54.3±0ms      55.9±0.01ms     1.03  basic_commands.TimeTestSuite.time_id_current('pypy-2017')
             43.6±0ms         45.2±0ms     1.04  basic_commands.TimeTestSuite.time_log_tip('mercurial-2017')
             54.8±0ms         56.4±0ms     1.03  basic_commands.TimeTestSuite.time_log_tip('mozilla-central-2017')
             57.6±0ms         59.3±0ms     1.03  basic_commands.TimeTestSuite.time_log_tip('netbeans-2017')
             44.9±0ms         46.8±0ms     1.04  basic_commands.TimeTestSuite.time_log_tip('pypy-2017')
             45.2±0ms         46.8±0ms     1.04  basic_commands.TimeTestSuite.time_status_tip('mercurial-2017')
           579±0.07ms       581±0.09ms     1.00  basic_commands.TimeTestSuite.time_status_tip('mozilla-central-2017')
           341±0.02ms       343±0.04ms     1.00  basic_commands.TimeTestSuite.time_status_tip('netbeans-2017')
          53.7±0.01ms         55.4±0ms     1.03  basic_commands.TimeTestSuite.time_status_tip('pypy-2017')
             54.0±0ms         55.9±0ms     1.04  basic_commands.TimeTestSuite.time_summary('mercurial-2017')
              1.29±0s          1.29±0s     1.00  basic_commands.TimeTestSuite.time_summary('mozilla-central-2017')
            790±0.1ms       793±0.01ms     1.00  basic_commands.TimeTestSuite.time_summary('netbeans-2017')
             81.3±0ms         83.1±0ms     1.02  basic_commands.TimeTestSuite.time_summary('pypy-2017')
             31.2±0ms         31.3±0ms     1.00  basic_commands.TimeTestSuite.time_version('mercurial-2017')
             31.2±0ms         31.3±0ms     1.00  basic_commands.TimeTestSuite.time_version('mozilla-central-2017')
             31.2±0ms         31.3±0ms     1.00  basic_commands.TimeTestSuite.time_version('netbeans-2017')
             31.2±0ms         31.3±0ms     1.00  basic_commands.TimeTestSuite.time_version('pypy-2017')

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D868

To: sid0, #hg-reviewers, durin42
Cc: lothiraldan, mercurial-devel


More information about the Mercurial-devel mailing list