Releases: phpbench/phpbench
Releases · phpbench/phpbench
1.0.1
1.0.0
1.0.0
(changes vs. 1.17)
B/C breaks:
- Progress logger: startSuite now additionally accepts
RunnerConfig
- Removed
self-update
functionality (suggest usingphive
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
andtime_mode
configuration settings, as they are
replaced byrunner.time_unit
andrunner.time_mode
. - Environment provider
baseline
renamed tosampler
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 toplain
- Removed awareness of
CONTINUOUS_INTEGRATION
environment variable - Removed
table
report generator, it is replaced by theexpression
generator which is now used to produce thedefault
andaggregate
reports. The output and configuration is largely the same, but some features
have been removed. html
andmarkdown
output formats have been removed temporarily.--uuid
renamed to--ref
andtag:
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 anExecutionResults
object.TemplateExecutor
: expect anarray
for the time measurement result instead
of anint
.- 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
mutableSubjectMetadata
andIteration
- Renamed the
microtime
executor toremote
. 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
anddelete
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 thetable
report used
foraggregate
anddefault
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
andremote_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
andmemory
- 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 tobare
report (vertical: true
). - Removed
best
andworst
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
adebug
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 ofstring
for envrionment key for DBAL storage - @flobee - Numeric tags are not found.
1.0.0-beta2
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
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
andtime_mode
configuration settings, as they are
replaced byrunner.time_unit
andrunner.time_mode
. - Environment provider
baseline
renamed tosampler
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
andmemory
- Unconditionally enable
xdebug
extension (previously the entire extension
was hidden if Xdebug wasn't installed)
1.0.0-alpha9
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 toplain
- 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 tobare
report (vertical: true
). - Removed
best
andworst
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
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 theexpression
generator which is now used to produce thedefault
andaggregate
reports. The output and configuration is largely the same, but some features
have been removed. html
andmarkdown
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
- Support true color expression rendering #767
- Added
expression
report generator - will eventually replace thetable
report used
foraggregate
anddefault
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
Features:
- Support for PHP 8 Attributes
1.0.0-alpha5
1.0.0-alpha5
Backward compatiblity breaks:
--uuid
renamed to--ref
andtag:
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
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