1. 12 May, 2017 10 commits
  2. 11 May, 2017 26 commits
  3. 10 May, 2017 4 commits
    • Ben Gamari's avatar
      4d9167b0
    • Simon Marlow's avatar
      Fix a performance bug in GhcMake.downsweep · 1893ba12
      Simon Marlow authored
      Every time we encountered a non-home module during the downsweep, we
      were removing it from the finder cache.  That meant we were searching
      the filesystem for every import, rather than once per downsweep.  The
      fix is just to flush the finder cache before the downsweep, and
      repopulate it for home modules that haven't changed.
      
      Speeds up downsweep by about 25% on a large example I have.
      
      Test Plan: Harbourmaster
      
      Reviewers: bgamari, niteria, austin, erikd
      
      Reviewed By: bgamari, niteria
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3554
      1893ba12
    • niteria's avatar
      Efficient membership for home modules · 26f509a9
      niteria authored
      This changes the linear lookup in a list to an efficient
      lookup in an IntMap. The linear lookup effectively made
      the algorithm quadratic, which for a test case that I have
      (5000 modules) introduced significant slowdown.
      
      I ran 3 experiments to estimate the impact of this:
      
      "No-op", profiled, just `:load`: P146, `186s`
      "before", profiled, `:load` followed by 10x `:r`: P147, `315s`
      "after", profiled, `:load` followed by 10x `:r`: P148, `250s`
      
      Going by the math of `(250-186)/(315-186) = 50%` this is a 2x improvement
      on `:r`.
      
      Test Plan: ./validate
      
      Reviewers: simonmar, austin, bgamari
      
      Reviewed By: simonmar
      
      Subscribers: rwbarton, thomie
      
      Differential Revision: https://phabricator.haskell.org/D3562
      26f509a9
    • Gabor Greif's avatar
      Typos [ci skip] · 22a03e72
      Gabor Greif authored
      22a03e72