FAQ === PHPBench is slow on Windows --------------------------- Process spawning on Windows is more expensive than on Linux/MacOS, PHPBench spawns many processes. Actual benchmarking time however is not affected. PHPBench's output looks corrupted on Windows -------------------------------------------- PHPBench makes use of ansi escape sequences in most of its progress loggers. The default Windows console does not support these sequences, so the output can look corrupted. You can mitigate this by using the `plain` logger, which does not issue any of these escape sequences. Why do `setUp` and `tearDown` methods not automatically get called? ---------------------------------------------------------------------- PHPBench supports the annotations ``BeforeMethods`` and ``AfterMethods`` which can be placed at the class level and/or the method level. These methods are plural. If we were to automatically add ``setUp`` to the chain then the annotation would read one thing, but the benchmark would do another (i.e. execute the method indicated by the annotation and the "magic" setUp method). If you want to support ``setUp`` and ``tearDown`` you can create a simple base class such as: .. code-block:: php /** * @BeforeMethods({"setUp"}) * @AfterMethods({"tearDown"}) */ abstract class BenchmarkCase { public function setUp() { } public function tearDown() { } }