Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Information

These are the results of our performance tests. If your performance is sensitive and/or you are working on server sizing, it may be better that you perform performance tests on a staging instance yourself.


Summary

Basically, once you have 50.000 requirements in the database, expect 20ms per requirement on the page when you save a page, and 20ms per requirement on view. This is not a commitment, as it depends on the machine, the set up, the configuration, the version of Confluence and Requirement Yogi.

Performance improvements in v1.11.5

  • For pages with no requirements, we've improved the speed by skipping our indexation:
    • We skip the parsing if the storage format hasn't changed,
    • We skip the parsing if the rendered format hasn't changed, in case it contains an "Include" or "Scaffolding" macro.
    • We skip the parsing if there is no requirement in the old or new version.
  • For pages with requirements:
    • We've added indexes on database columns. On our instance we get 5x faster results when saving a page, but we may be in special circumstances.
    • When we index a page (=when a user saves a page), we've batched the lookups of requirements, so we don't do 1 database request for each requirement on the page. On our instance, we get again 4x faster times depending on database latency (most LANs are on 1ms latency, but we've measured with 5ms).
    • We'd be thrilled if you have 20x better response times than in 1.11.4, but we'll check back with customers before asserting that.

Details

We have evaluated on a personal machine with the following setup:

  • Macbook 2013
  • 2,4 GHz Intel Core i7-3635QM (3rd generation–2013, not the 8th generation from 2017),
  • RAM 8GB.
  • Database latency: 5 to 10ms (random) per query.
  • Database prefilled with 80.000 requirements.

We have simply instrumented the code and created massive pages:

Event

Time (in addition to Confluence's algorithm).

For ~400 requirements, 1Kb each in average. No Jira connection.

Time

1ms database latency.

Time

1ms latency,
200-char requirements

Time

1ms latency,
1000 requirements

Page creation
  • 400ms rendering of the page
  • 48ms per requirement,
  • Total: +19,6 seconds (on top of Confluence's algorithm).
  • 400ms rendering
  • 14ms per requirement,
  • Total +6068ms.
  • 1082ms
    rendering (Confluence)
  • 12ms per requirement
  • Total +12324ms
Page edition
  • 400ms rendering of the page
  • 32ms per requirement,
  • Total +13,3 seconds.

For 0 requirement and 480kb of raw text:

  • 1ms if the page doesn't contain any "include" or "Scaffolding" macro,
  • 564ms if the page contains mutable content (include macro or Scaffolding).
  • 400ms rendering
  • 12ms per requirement,
  • Total +5272ms.
  • 400ms rendering
  • Total +4791ms.
  • 2081ms rendering
  • 10ms per requirement
  • Total +12204ms

Submission of excerpts

(This operation is in the background, the user doesn't wait for this).

  • 4ms per non-modified requirement,
  • 10 to 53ms per modified requirement,
    (depending on the size of text and the number of properties).
  • Total 12,800s for 400 modified requirements.
  • 5,26ms per modified requirement,
  • Total +2107ms.
  • Total +1843ms.
  • 8ms per modified requirement.
  • Total +8111ms



  • No labels