Releases: bakame-php/stackwatch
Releases · bakame-php/stackwatch
version 0.16.1
version 0.16.0 - Pointe-Noire
Added
PerformanceAssertionsto align withAggregatedMetricsusage and generation.Report::iterations()method is added.StackWatchExceptionNoMetricSelectedexceptions
Fixed
- BC BREAK: improve
Reportgeneration validation and adds missingReport::iterations()method AggregatedMetrics::ddandStatistics::ddimproved implementation- BC BREAK: global functions are namespaced
- Improve Github actions
- BC BREAK: exceptions are now all inheriting from a base
StackWatchException
Deprecated
- None
Remove
MetricsAssertionstrait replaced by thePerformanceAssertionstrait- BC BREAK: Enums can no longer be profiled using the CLI instance as it was making no sense.
version 0.15.0 - Ouagadougou
Added
- BC BREAK: Rename
stacktostack_call - BC BREAK: Rename
stack_dumptostack_cdump - BC BREAK: Rename
stack_ddtostack_cdd - BC BREAK: Rename
stack_metricstostack_bench - BC BREAK: Rename
stack_mdumptostack_bdump - BC BREAK: Rename
stack_mddtostack_bdd - BC BREAK: Rename
Stack::executetoStack::call - BC BREAK: Rename
Stack::metricstoStack::benchmark - BC BREAK: Rename
Stack::dumpMetricstoStack::dumpBenchmark - BC BREAK: Rename
Stack::ddMetricstoStack::ddBenchmark - Added
AggregatedMetricsto distinguish raw and calculated metrics - Added
Report::rowto make theReportpublic API consistent - Added
Report::columnto have a single source of truth for statistics generation - Added
OtlExporterto export data to an Open Telemetry server - Added
MetricTypeEnum to list possible metrics supported by the package - Added
Profilermissing aggregated related methods. - Added
MetricsAssertionsmissing aggregation methods preset - Added
CallbackDumperto simplifyddimplementation - Added the
Rendererinterface - Added the
StackMetadatarenderer to enable rendering thestack_*metadata
Fixed
- BC BREAK:
Statisticsno longer exposes its main unit it now exposes its type using theMetricTypeenum. Timeline::dumpandTimeline::ddcan take an optional filter callable.ViewExporterno longer needs or requires theRendererwhich is removed- BC BREAK: Move all the classes related to export in their own namespace
Bakame\Stackwatch\Exporter
Deprecated
- None
Remove
- Removed all
Metricsstatic method related to aggregated data. useReport::metrics()instead. - Removed
Metrics::addmethod - Removed the internal
Rendererclass - BC BREAK: Remove access to
Reportproperties (they are made private to improve the public API)
version 0.14.0 - Nouakchott
Added
- PHPUnit assertions helper trait
MetricsAssertionsto help profile testing using PHPUnit Framework - Added
stack,stack_watch,stack_report,stack_dump,stack_dd,stack_metrics,stack_mdumpandstack_mddto profile, dump a human-readable result into the console or the web browser using global functions to ease DX. - Added
ViewExporterandRendererto allow viewing the log in browser or in the CLI - Added
dump()anddd()methods toProfiler,Timeline,SpanAggregator,Snapshot,Metrics,Span,Report - Added
Metrics::sum,Metrics::range,Metrics::minimum,Metrics::maximun,Metrics::median,Metrics::aggregate - Adding the
AggregationTypeEnum to improveStack::metrics, theProfileAttribute and theMetricsusage. - BC BREAK:
Summaryis renamedSpan. CallLocationclass to allow recording where the packageSnapshotwas called from #8CallRangeclass to allow manipulating location range within theSummaryclass.Environment::toHumanandEnvironment::humanmethodsMetrics::yieldFromto lazily yield Metrics from other objects (Report,Timeline,Profiler,SpanandMetrics)- Added
withersmethod on theInput - Added
Input::toArgumentsto ease constructing the CLI command out of theInputinstance. - Added
Input::fromArray,Input::toArrayandInputnow implements theJsonSerializableinterface --dry-runoption tostackwatchcommand to list profiling targets without performing the profile--logoption tostackwatchcommand to specify the logfile where error logs are being stored--file-suffixto restrict files to be profiled based on their suffix.--method-visibilotyto restrict methods to be profiled based on their visibility- BC BREAK:
Visibilityis renamedDisplay - BC BREAK:
Stateis renamedFeature - BC BREAK:
Input::TABLE_FORMATis renamedInput::TEXT_FORMAT - Added a
Translatorclass to improve human-readable key translation. - Added
Profiler::dumpandProfiler::ddto profile, dump a human-readable result into the console or the web browser - Added
toHuman()method to return a human-readable version oftoArray - Added
human()method to return the human-redable version of a single property. - Added Snapshot relation method
compareToand its aliasesisBefore*isAfter*andisAtSameTimeusing theSnapshot::hrtimeproperty - BC BREAK:
Profilerclass is split into two classesStackandProfiler
Fixed
UnitOfWorkinternal code improvement.- BC BREAK:
Snapshot::forHumanproperties key have been updated to remove JSON like string representation. - BC BREAK:
Snapshot::cpuproperty is replaced by 2 propertiesSnapshot::cpuUserTimeandSnapshot::cpuSystemTime. LabelGenerator::generatenow also accepts the hyphen (-) character.- Adding support for
TimelineonMetrics::sumandMetrics::averagestatic methods. - BC BREAK: Fix
ReportandEnvironmentkeys used fortoArrayandforHuman - BC BREAK: Fix
Statistics::countis notStatistics::iterationskeys used fortoArrayandforHuman - BC BREAK: Fix
Metricscalculation - BC BREAK: the
Profileattribute default to showing the full detailed metrics.
Deprecated
- None
Removed
- BC BREAK:
Summaryis removed and replaced bySpan. - BC BREAK:
forHuman()method is removed and replaced by 2 methodstoHuman()andhuman(). - BC BREAK: the constants attached to the
Profileattribute use theAggregateModeenum instead. - BC BREAK: Removed open telemetry exporter
version 0.13.0 - Marrakesh
Added
--tagsoption to the CLI command to filter profile that needs to be run based on thetagsproperty of the #[Profile] attribute.--memory-limitoption to the CLI command to control the memroy limit of the main process.UnitSpacingEnum to control the space between value and unit when using the format related methods ofMemoryUnitandDurationUnit.VisibilityandStateEnums to improveInputoption flags properties.
Fixed
- BC BREAK:
Timeline::deltadefault to creating the delta between thefromand the next snapshot before it was with the last snapshot if notolabel was given. - BC BREAK:
Inputboolean properties are replaced by discretEnum
Deprecated
- None
Removed
- BC BREAK:
Markerclass renamedTimeline
version 0.12.0 - Luanda
Added
--depthargument and--no-recursionflag to control recursion on directories.--isolationflag to handle in isolation each file.
Fixed
- BC BREAK: command line format options
tablereplace the default optioncli - BC BREAK: Changed
Bakama\Stachwatcher\Marker::summarymethod name toBakama\Stachwatcher\Marker::summarize - Internal improvement, Lazy evaluation is now done in the
UnitOfWork
Deprecated
- None
Removed
- None
version 0.11.0 - Kampala
Added
- BC BREAK: Changed namespace from
Bakame\Aide\ProfilertoBakama\Stackwatcher StatisticsclassReportclass and theProfiler::reportmethod.ConsoleExporter::exportMetricsConsoleExporter::exportStatisticsConsoleExporter::exportReportJsonExporter- The
Stackwatchercommand to ease profiling using command line
Fixed
- None
Deprecated
- None
Removed
- BC BREAK:
ConsoleTableExporterrenamedConsoleExporterand moved under theExporternamespace - BC BREAK:
Profiler::executionTimeremoved useProfiler::metricsinstead - BC BREAK:
Profiler::cpuTimeremoved useProfiler::metricsinstead - BC BREAK:
Profiler::memoryUsageremoved useProfiler::metricsinstead - BC BREAK:
Profiler::peakMemoryUsageremoved useProfiler::metricsinstead - BC BREAK:
Profiler::realMemoryUsageremoved useProfiler::metricsinstead - BC BREAK:
Profiler::realPeakMemoryUsageremoved useProfiler::metricsinstead - BC BREAK:
Marker::executionTimeremoved useMarker::metricsinstead - BC BREAK:
Marker::cpuTimeremoved useMarker::metricsinstead - BC BREAK:
Marker::memoryUsageremoved useMarker::metricsinstead - BC BREAK:
Marker::peakMemoryUsageremoved useMarker::metricsinstead - BC BREAK:
Marker::realMemoryUsageremoved useMarker::metricsinstead - BC BREAK:
Marker::realPeakMemoryUsageremoved useMarker::metricsinstead - BC BREAK:
ProfiledResultis renamedResult
version 0.10.0 Johannesburg
Added
Marker::completeandMarker::isCompleteProfiler::hasSummariesProfiler::filterSnapshot::fromArrayMetrics::fromArraySummary::fromArrayLabelGenerator::withLengthlabel length can be configuredMemoryUnit::convertFromandMemoryUnit::convertToDurationUnit::convertFromandDurationUnit::convertTo- The static methods from the
Profilernow can warm up before recording the metrics.
Fixed
- BC BREAK:
ProfilingResult::resultis renamedProfilingResult::returnValue - BC BREAK:
ProfilingResult::ProfilingDatais renamedProfilingResult::summary - BC BREAK:
ProfilingResultis renamedProfiledResult - BC BREAK:
ProfilingDatais renamedSummary - BC BREAK:
Labelis renamedLabelGenerator - BC BREAK:
Exporter::exportProfilingDatais renamedExporter::exportSummary - BC BREAK:
Snapshot::toArrayandSnapshot::jsonSerializerepresentation simplified - BC BREAK:
Summary::toArrayandSummary::jsonSerializerepresentation simplified - BC BREAK:
Summary::__constructsignature changed - BC BREAK:
Profiler::toArrayandProfiler::jsonSerializerepresentation simplified - BC BREAK:
Marker::toArrayandMarker::jsonSerializerepresentation simplified - BC BREAK:
Marker::deltaremoved the 3rd argument - BC BREAK:
Marker::summarythrows when no summary can be generated - BC BREAK:
Marker::finishis renamedMarker::take Snapshot::cpukeys presence is validated on instantiation
Deprecated
- None
Removed
- None
version 0.9.0 - Ibadan
Added
- Added
Metrics::forHumanto ease getting human-readable metrics representations. - Added
Snapshot::forHumanto ease getting human-readable metrics representations. - Added
EnvironmentOS Platform related methods. - Added
Markerto provide an alternative way to profile your code. - Added
Labelto decouple label generation from bothMarkerandProfiler. - Added
Exporter::exportMarkermethod to the interface. - Added
Profiler::runwithProfiler::__invokebecoming its alias - Added
Marker::identifierandProfiler::identifierto ease identify each instance uniquely
Fixed
- BC BREAK:
Profiler::lastis renamedProfiler::latestto be consistent withMarker::latest - BC BREAK:
Profiler::runWithLabelis renamedProfiler::profile
Deprecated
- None
Removed
- None
version 0.8.0 - Harare
Added
- Added
Environment::rawMemoryLimitto keep the original value if it cannot be properly parsed.
Fixed
- BC BREAK:
Environment::memoryLimitis a nullable int - BC BREAK: Renamed
Metrics::statstoMetrics::toArray - BC BREAK: Renamed
Snapshot::statstoSnapshot::toArray - BC BREAK: Renamed
ProfilingData::statstoProfilingData::toArray - BC BREAK: Renamed
Environment::statstoEnvironment::toArray
Deprecated
- None
Removed
- None