1. 11 4月, 2016 1 次提交
    • Y
      Store block timings as transaction values · 16926a67
      Yorick Peterse 提交于
      This makes it easier to query, simplifies the code, and makes it
      possible to figure out what transaction the data belongs to (simply
      because it's now stored _in_ the transaction).
      
      This new setup keeps track of both the real/wall time _and_ CPU time
      spent in a block, both measured using milliseconds (to keep all units
      the same).
      16926a67
  2. 08 4月, 2016 3 次提交
  3. 07 4月, 2016 9 次提交
  4. 06 4月, 2016 10 次提交
  5. 05 4月, 2016 2 次提交
  6. 04 4月, 2016 8 次提交
    • J
      Be careful when setting class instance vars · 213ee624
      Jacob Vosmaer 提交于
      213ee624
    • J
      Add Gitlab::Redis connection pool · 0163e276
      Jacob Vosmaer 提交于
      0163e276
    • Y
      Cleaned up caching in AbstractReferenceFilter · 915fd3f9
      Yorick Peterse 提交于
      Cleaning this up any further is a bit tricky as the caches in question
      should only be evaluated if RequestStore is actually enabled.
      915fd3f9
    • Y
      Cache default_issues_tracker? in Banzai · 7f0fd73e
      Yorick Peterse 提交于
      Every object processed by ExternalIssueReferenceFilter can return a
      different Project instance when calling "project". For example, every
      note processed will have it's own associated Project. If we were to
      cache Project#default_issues_tracker? on Project level this would have
      no impact on Markdown rendering timings as the cache would have to be
      built for every Project instance without it ever being re-used.
      
      To work around this we cache Project#default_issues_tracker? in
      Banzai::Filter::ExternalIssueReferenceFilter using the project's _id_
      instead of the whole object. This setup allows re-using of the cached
      data even when the Project instances used are different, as long as the
      actual project IDs are the same.
      7f0fd73e
    • Y
      Memoize object class titles · 9fa94326
      Yorick Peterse 提交于
      For an issue with around 200 notes this cuts down timings by around 150
      milliseconds.
      9fa94326
    • Y
      Cache Banzai class methods returning static data · 8c49eaa9
      Yorick Peterse 提交于
      These methods always return the same data for every class so there's no
      point in computing their values on every call.
      8c49eaa9
    • Y
      Refactor processing of various Banzai filters · 14114805
      Yorick Peterse 提交于
      These filters now use a single iteration over all the document nodes
      instead of multiple ones. This in turn allows variables to be re-used
      (e.g. links only have to be unescaped once). Combined with some other
      refactoring this can drastically reduce render timings.
      14114805
    • Y
      Cache Banzai projects/objects using RequestStore · 57bde0ce
      Yorick Peterse 提交于
      This was originally suggested by @ayufan and modified to be a bit
      cleaner and use RequestStore instead of a regular Hash.
      
      By caching the output of the two methods involved the number of queries
      is reduced significantly. For example, for an issue with 200 notes (of
      which 100 reference a number of merge requests) this cuts down the
      amount of queries from around 6300 to around 3300.
      57bde0ce
  7. 01 4月, 2016 3 次提交
  8. 31 3月, 2016 4 次提交