summaryrefslogtreecommitdiff
path: root/www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md')
-rw-r--r--www/wiki/extensions/SemanticMediaWiki/tests/phpunit/Benchmark/README.md56
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
+
+```