diff options
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md')
-rw-r--r-- | www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md new file mode 100644 index 00000000..f19bb949 --- /dev/null +++ b/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md @@ -0,0 +1,56 @@ +Benchmark tests are to use `PHPUnit` as integration platform and do not always +represent the best tool for a performance comparison (as it depends on environmental +factors such as hardware and software constraints which might not be under the +control of the tester) but it can help to identify performance regressions among +newly introduced features that run with the same environmental specification. + +Benchmarks are not performed in isolation and therefore run in concert with the +`MediaWiki` infrastructure to determine the overall performance impact during +execution. + +When using `git`, it is relatively easy to run tests and see if a change +introduces a significant regression or improvement in terms of performance over +the existing `master` branch by comparing test results of the `master` against +a `feature` branch. + +## Designing benchmark tests + +The definition of what benchmarks are executed is specified by a `JSONScript` +found in the `TestCases` directory. Supported types are: + +- `import` to import data from an external source +- `contentCopy` copy content from an internal source +- `editCopy` edit content from an internal source +- `job` running selected jobs +- `maintenance` running selected maintenance scripts +- `query` executing `#ask` queries + +## Running benchmark tests + +Running `composer benchmark` from the Semantic MediaWiki base directory should +output something similar to what can be seen below. + +``` +- mediawiki: "1.28.0-alpha" +- semantic-mediawiki: "2.5.0-alpha" +- environment: {"store":"SMWSQLStore3","db":"mysql"} +- benchmarks +- 35a205a6fa1db2cda4c484d3007953b3 + - type: "import" + - source: "import-001.xml" + - memory: 5564360 + - time: {"sum":5.9888241} +- 054543b5702e6fcbccafd00bf6dd27ac + - type: "contentCopy" + - source: "import-001.xml" + - import + - memory: 351392 + - time: {"sum":0.900929} + - copy + - copyFrom: "Lorem ipsum" + - copyCount: 10 + - memory: 75056 + - time: {"sum":7.9295225,"mean":0.7929523,"sd":0.1008703,"norm":0.0792952} + - time: 8.8402690887451 + +``` |