Phpbench Versions Save

PHP Benchmarking framework

1.0.1

3 years ago

Bug fix:

  • Error with bare report when DateTime used as param #832

1.0.0

3 years ago

1.0.0

(changes vs. 1.17)

B/C breaks:

  • Progress logger: startSuite now additionally accepts RunnerConfig
  • Removed self-update functionality (suggest using phive instead(.
  • Most configuration option names have changed. All options are now prefixed by their extension name, e.g. bootstrap => runner.bootstrap, path => runner.path, extensions => core.extensions. See the configuration [documentation(https://phpbench.readthedocs.io/en/latest/configuration.html) for a full reference.
  • Removed time_unit and time_mode configuration settings, as they are replaced by runner.time_unit and runner.time_mode.
  • Environment provider baseline renamed to sampler to avoid concept-conflict with the runner baselines.
  • Extensions grouping related functionalities have been extracted from the CoreExtension, this will change the location of some constants used (e.g. CoreExtension::TAG_PROGRESS_LOGGER is now RunnerExtension::PROGRESS_LOGGER.
  • Renamed travis progress logger to plain
  • Removed awareness of CONTINUOUS_INTEGRATION environment variable
  • Removed table report generator, it is replaced by the expression generator which is now used to produce the default and aggregate reports. The output and configuration is largely the same, but some features have been removed.
  • html and markdown output formats have been removed temporarily.
  • --uuid renamed to --ref and tag: prefix removed #740
  • No warnings - if assertion fails within tolerance zone then it is OK
  • Assertion DSL has been replaced (only applicable vs. previous alpha versions)
  • BenchmarkExecutorInterface#execute() must now return an ExecutionResults object.
  • TemplateExecutor: expect an array for the time measurement result instead of an int.
  • Extensions use the Symfony OptionsResolver instead of provding an array of default values (which is in line with how other parts of PHPBench are working).
  • Executors accept a single, immutable ExecutionContext instead of the mutable SubjectMetadata and Iteration
  • Renamed the microtime executor to remote.
  • OutputInterface is injected from the DI conatiner, OutputAwareInterface has been removed.
  • DBAL extension removed.
  • PHPBench Reports extension removed.
  • Removed Xdebug Trace integration
  • Removed --query featre (only worked with DBAL, too complex).
  • Removed --context (depreacted in favor of --tag).
  • Removed archive and delete commands.
  • Assertions now accept a single expression rather than a set of configuration options.
  • Type hints have been added in most places - possibly causing issues with any extensions.
  • Assets (storage, xdebug profiles) are now placed in .phpbench
  • Services referenced via. fully qualified class names instead of strings.

Features:

  • Added --working-dir option
  • Option to include the baseline rows in the expression report.
  • Progress output is sent to STDERR, report output to STDOUT (enable you to pipe the output)
  • Allow --theme= selection and configuration.
  • Allow benchmarks to be configued in the config (runner.{iterations,revs,time_unit,mode,etc})
  • Include collected environmental information in the report data #789
  • Allow providers to be enabled/disabled via. env.enabled_providers #789
  • Support @RetryThreshold annotation, attribute, and runner.retry_threshold configuration.
  • Introduced bare report generator - provides all raw available report data
  • Introduced display_as_time function to handle formatting time with throughput.
  • Null coalesce function introduced in expression language
  • Support true color expression rendering #767
  • Added expression report generator - will eventually replace the table report used for aggregate and default reports.
  • Added --format to customize the summary shown in progress loggers
  • String concatenation for expression language
  • Show debug details (process spawning) with -vvv
  • Support Xdebug 3
  • Support for PHP 8 Attributes
  • New Expression Lanaugage
  • Introduced remote_script_remove and remote_script_path options to assist in debugging.
  • Added local executor - execute benchmarks with in the same process as PHPBench.
  • Configuration profiles
  • Xdebug extension is loaded by default if extension is loaded
  • Baseline: Specify baseline suite when running benchmarks and show differences in reports #648
  • Assert against the baseline
  • Show PHP version and the status of Xdebug and Opcache in the runner output #649
  • Add @Timeout to enable a timeout to be specified for any given benchmark - @dantleech #614

Improvements:

  • Optionaly support for binary data in param providers #532
  • Support serializable objects in param providers #823
  • Use package versions to show PHPBench version if not PHAR
  • Removed "summary" line from default progress output.
  • Automatically detect time or memory units by default, added meta-units time and memory
  • Unconditionally enable xdebug extension (previously the entire extension was hidden if Xdebug wasn't installed)
  • "local" executor will include non-existing benchmark classes and bootstrap
  • Configuation options have generated documentation
  • Preserve types in env information
  • Make default true color theme compatible with light backgrounds.
  • Added vertical layout to bare report (vertical: true).
  • Removed best and worst columns by default from default report.
  • Default to showing all columns in expression report
  • Standard deviation in default report is shown as time
  • Relative SD is color gradiated
  • Trunacte long syntax error messages
  • Automatically sign PHAR on release
  • Dynamically resolve timeunit / precision from expression (progress/report) #775
  • Support specificaion of display-as precision in expression language
  • Allow the display unit to be evaluated (for dynamically determining the unit based on the subject's preference)
  • Make the display unit a node - allowing it to be pretty printed.
  • Improved memory formatting (thousands separator, use abbreviated suffix)
  • Show difference to baseline in progress loggers.
  • Highlight assertion failures.
  • Decorator added to improve error reporting for method executors.
  • Benchmarks executed as they are found (no eager metadata loading)
  • Allow direct reference to services (e.g. --executor=debug without need for a debug configuration).
  • Colourful indication of success/failure/warnings when assertions are used.
  • Allow multiple paths to be specified in config
  • Add type restrictions to config values
  • All assets now placed in .phpbench directory in CWD (instead of ./_storage and ./xdebug
  • --tag implicitly stores the benchmark (no need to additionally use --store)
  • Decrease benchmark overhead by rendering parameters in-template - @marc-mabe

Bug fix:

  • Fix regression which requires phpbench to be installed with composer 2 #822
  • Unterminated XML reference #818 - @staabm
  • Parent directory for custom script path not created #739 - @alexandrajulius
  • Windows newline is not understood in expression language #817 - @dantleech
  • @OutputTimeUnit doesn't propagate to default expression time unit #766
  • Numeric tags cause an error #717
  • Benchmark errors cause reports to error
  • Undefined console formatter subtitle #729
  • Missing formatters not defined in correct place #727
  • Use text instead of string for envrionment key for DBAL storage - @flobee
  • Numeric tags are not found.

1.0.0-beta2

3 years ago

B/C breaks:

  • Progress logger: startSuite now additionally accepts RunnerConfig

Improvements:

  • Use package versions to show PHPBench version if not PHAR
  • Display hint to indicate what is being compared
  • Display the Mo prefix as a node (i.e. it can have highlighting applied to it)

Bug fixes:

  • Unterminated XML reference #818 - @staabm
  • Parent directory for custom script path not created #739 - @alexandrajulius
  • Windows newline is not understood in expression language #817 - @dantleech

1.0.0-beta1

3 years ago

1.0.0-beta1

B/C breaks:

  • Most configuration option names have changed. All options are now prefixed by their extension name, e.g. bootstrap => runner.bootstrap, path => runner.path, extensions => core.extensions. See the configuration documentation for a full reference.
  • Removed time_unit and time_mode configuration settings, as they are replaced by runner.time_unit and runner.time_mode.
  • Environment provider baseline renamed to sampler to avoid concept-conflict with the runner baselines.

Improvements:

  • Removed "summary" line from default progress output.
  • Automatically detect time or memory units by default, added meta-units time and memory
  • Unconditionally enable xdebug extension (previously the entire extension was hidden if Xdebug wasn't installed)

1.0.0-alpha9

3 years ago

B/C Breaks:

  • Extensions grouping related functionalities have been extracted from the CoreExtension, this will change the location of some constants used (e.g. CoreExtension::TAG_PROGRESS_LOGGER is now RunnerExtension::PROGRESS_LOGGER.
  • Renamed travis progress logger to plain
  • Removed awareness of CONTINUOUS_INTEGRATION environment variable

Features:

  • Added --working-dir option
  • Option to include the baseline rows in the expression report.
  • Progress output is sent to STDERR, report output to STDOUT (enable you to pipe the output)
  • Allow --theme= selection and configuration.
  • Allow benchmarks to be configued in the config (runner.{iterations,revs,time_unit,mode,etc})
  • Include collected environmental information in the report data #789
  • Allow providers to be enabled/disabled via. env.enabled_providers #789
  • Support @RetryThreshold annotation, attribute, and runner.retry_threshold configuration.

Improvements:

  • "local" executor will include non-existing benchmark classes and bootstrap
  • Configuation options have generated documentation
  • Preserve types in env information
  • Make default true color theme compatible with light backgrounds.
  • Added vertical layout to bare report (vertical: true).
  • Removed best and worst columns by default from default report.
  • Default to showing all columns in expression report
  • Standard deviation in default report is shown as time
  • Relative SD is color gradiated
  • Trunacte long syntax error messages

Other:

  • Automatically sign PHAR on release

1.0.0-alpha8

3 years ago

This release replaces much of the reporting layer, switching it to be based on expressions.

BC Breaks:

  • Removed table report generator, it is replaced by the expression generator which is now used to produce the default and aggregate reports. The output and configuration is largely the same, but some features have been removed.
  • html and markdown output formats have been removed temporarily.

Features:

  • Expression report: replaces the table report.
  • Introduced bare report generator - provides all raw available report data
  • Introduced display_as_time function to handle formatting time with throughput.
  • Null coalesce function introduced in expression language

Improvements:

  • Dynamically resolve timeunit / precision from expression (progress/report) #775
  • Support specificaion of display-as precision in expression language
  • Allow the display unit to be evaluated (for dynamically determining the unit based on the subject's preference)
  • Make the display unit a node - allowing it to be pretty printed.
  • Improved memory formatting (thousands separator, use abbreviated suffix)

1.0.0-alpha7

3 years ago
  • Support true color expression rendering #767
  • Added expression report generator - will eventually replace the table report used for aggregate and default reports.
  • Added --format to customize the summary shown in progress loggers
  • String concatenation for expression language
  • Show debug details (process spawning) with -vvv
  • Support Xdebug 3

Bug fixes:

  • @OutputTimeUnit doesn't propagate to default expression time unit #766

1.0.0-alpha6

3 years ago

Features:

  • Support for PHP 8 Attributes

1.0.0-alpha5

3 years ago

1.0.0-alpha5

Backward compatiblity breaks:

  • --uuid renamed to --ref and tag: prefix removed #740
  • No warnings - if assertion fails within tolerance zone then it is OK
  • Assertion DSL has been replaced (only applicable vs. previous alpha versions)

Features:

Improvements:

  • Show difference to baseline in progress loggers.
  • Highlight assertion failures.

1.0.0-alpha4

3 years ago

1.0.0-alpha-4

Bug fixes:

  • Numeric tags cause an error #717
  • Benchmark errors cause reports to error
  • Undefined console formatter subtitle #729
  • Missing formatters not defined in correct place #727

Improvements:

  • Colourful indication of success/failure/warnings when assertions are used.
  • Allow multiple paths to be specified in config
  • Add type restrictions to config values