Changelog
[3.5.0] - 2026-05-14
Added
- A performance regression Threshold property for the Performance attribute. It is only reported when the value is greater than 0.0 and is to be used by the performance reporting endpoint to compare against historical data.
[3.4.2] - 2026-04-27
Added
- Made the package compatible with Fast Enter Playmode
[3.4.1] - 2026-04-17
Fixed
- Order dependency JSON content to not rewrite it to disk when contents have not actually changed.
[3.4.0] - 2026-03-26
- Internal fixes only
[3.3.0] - 2026-03-18
- Internal fixes only
[3.2.1] - 2026-03-12
Fixed
- Only call AssetDatabase.Refresh() in Cleanup() when something actually got deleted BUTFP-29
- Avoid boxing from enum.Equals in ConvertSamples.
- Prevent unnecessary asset recompilation by skipping result writing when the content is unchanged.
Changed
- Added assert when sample is measured for a non-existing ProfilerMarker.
- Use ProfilerRecorder API to measure profiler markers.
- Updated GC.Alloc measurements (GC() function of Measure.Method) to collect allocation count on the running thread only.
- SampleGroup.GetRecorder is now marked as [Obsolete] and will be removed in a future update.
[3.2.0] - 2025-09-16
Added
- Improved render threading mode reporting
[3.1.0] - 2025-03-28
Added
- Added an optional command-line argument "perfTestResults" to control the target location of performance test run results file.
Fixed
- Warmup cycles no longer record GC measurements.
- Setup and Cleanup cycles no longer contribute to GC measurements.
[3.0.3] - 2023-09-11
Fixed
- Fixed issue where exception in OnTestEnded callback would result in EndTest method not finalising properly
Changed
- Temporarily removed "Open Script" from Performance Benchmark Window
- Some clarifications in documentation were added ("Extension" naming changed to "Package", Package limitations clarified)
[3.0.2] - 2023-06-29
Changed
- Added additional InternalsVisibleTo attribute for internal test assembly
[3.0.1] - 2023-06-23
Changed
- Removed false "unityRelease" field from package.json
[3.0.0] - 2023-06-05
Added
- "Open Source Code" menu item to test results
- Test Filter to filter results by test name
Changed
- Items in test results are grouped by classname
- Make Sample Groups to be shown only when clicking on items with them
- "New Data available" label re-located
- Replaced CamelCase headers with regular text headers in csv report
- Replaced TRUE/FALSE with Yes/No in the "Increase Is Better" column in csv report
- Renamed the default report name to PerformanceTestResults
- Documentation updates to reflect API changes
Fixed
- Median calculation in case of even number of samples
- Deviation division by zero
- Exception thrown after clicking Cancel button (during Test Result export)
- The issue where the last column was always empty in csv report
[3.0.0-pre.2] - 2023-04-06
Added
- Help button, which redirects the user to documentation website
- Clear Results button, which clears all Performance test results
- Updated CI to support more Unity versions and expand test coverage
Changed
- Updated the style of toolbar buttons to match that of the Test Runner window for consistency
- Export button is now disabled instead of hidden when there are no Performance test results
- Made AutoRefresh toggle retain its state after closing and reopening the window
- Moved the Performance Test Report from 'Window/Analysis' to 'Window/General' near Test Runner for better accessibility
Removed
- Build project from CI
Fixed
- Issue where running tests with the Test Report window open would cause the error message "The object of type ' Material' has been destroyed" to appear
- Issues where incorrect labels were displayed at certain scenarios
- Issues flagged by SonarQube
[3.0.0-pre.1] - 2023-03-02
Added
- Merged 2.8.1 changes that weren't reflected in 2.10.0 release
Fixed
- Fixing issues from SonarQube check
- Updating obsolete API's that stopped working with recent Unity versions
- Clarified how to add package in Unity project in documentation
[2.10.0] - 2021-11-01
Added
- Support for dynamic measurement count in Measure.Method and Measure.Frames
[2.9.0] - 2021-04-14
Added
- Support for overriding measurement count
[2.8.1] - 2021-03-16
Removed
- Setting up date when building player. It will set up at the beginning of the run.
[2.8.0] - 2021-03-16
Added
- Overloads to measurements for overriding sample unit
Fixed
- Cases where cleanup throws an exception
[2.7.0] - 2021-02-19
Changed
- Reduce metadata overhead when running locally by caching dependencies
- Restructured documentation
Removed
- The need for link.xml
Fixed
- Method measurement IterationsPerMeasurement
[2.6.0] - 2021-01-12
Added
- Build configuration support
[2.5.1] - 2021-01-05
Fixed
- Serialization for Performance Test Report window
[2.5.0] - 2020-12-29
Added
- Domain reload support
Changed
- Switched from Newtonsoft.Json to Unity json module
[2.4.1] - 2020-11-05
Changed
- Metadata collection was made public
[2.4.0] - 2020-09-16
Added
Performance Test Report window updates:
- CSV export option.
- Monitoring of results file timestamp to support auto refresh when a new file is found.
- Display of timestamp of last loaded results file.
- Option to sort test report window by order the tests ran in (index). This is now the default.
- Min and max to the table.
- Improved titles and tooltips on columns
Changed
- Upgraded json dependency to release version
- Reduced overhead introduced when running tests
[2.3.1] - 2020-07-01
Fixed
- Overhead introduced with Measure.Method no longer calculates execution time of Setup and Cleanup changes
[2.3.0] - 2020-06-17
Fixed
- Measure.Method overhead
- Measure.Method no longer calculates execution time of Setup and Cleanup
- Overwritten test name will be displayed with method name in Test Result viewer
[2.2.0] - 2020-05-26
Added
- Support for custom metadata
[2.1.0] - 2020-05-14
Added
- Flexible horizontal splitter for report window
Fixed
- Date format
[2.0.9] - 2020-03-23
Fixed
- Profiler measurements for method measurements
- Throw exceptions when measuring NaN
[2.0.8] - 2020-02-20
Fixed
- Fix profiler marker capture when changing scenes in editor tests
- Only shift samplegroups for UI
[2.0.7] - 2020-02-14
Fixed
- Results parsing
[2.0.6] - 2020-01-13
Fixed
- Development player field
[2.0.5] - 2020-01-13
Changed
- Disallow multiple performance attributes
- Disallow empty samplegroup name
- Assign samplegroup name to frames measurements
[2.0.4] - 2019-12-05
Changed
- Update json package to support AOT platforms
[2.0.3] - 2019-11-20
Added
- New fields to data format BuildTarget, StereoRenderingPath
[2.0.2] - 2019-11-20
Changed
- Increased test serialization version
[2.0.1] - 2019-11-20
Fixed
- Player callbacks when no tests were executed
[2.0.0] - 2019-11-19
Added
- Tests to package testables
Changed
- Refactored data format, reduced nesting
- Slight refactor on measurement API
- Shift sample units when printing results
- Switched to newtosoft json package
Removed
- Unused fields
- Deprecated attributes
Fixed
- Resources cleanup meta files
[1.3.1] - 2019-11-05
Fixed
- Warning after cleaning resources
- Test suite when running in the editor
[1.3.0] - 2019-08-26
Changed
- Switch to errors from exceptions when parsing results
- Increase minimum unity version to 2019.3
Removed
- Metadata collectors tests
[1.2.6] - 2019-08-22
Changed
- Categorize performance tests as performance
- ProfilerMarkers can now be called with string params
- Switch measuring frames and methods to stopwatch
Removed
- Profiler section on docs as the feature was removed
[1.2.5] - 2019-06-17
Added
- Test publish for CI
[1.2.4] - 2019-06-17
Added
- Test publish for CI
[1.2.3] - 2019-06-14
Changed
- Updated changelog
[1.2.2] - 2019-06-13
Added
- Support for domain reload
[1.2.1] - 2019-06-07
Fixed
- Bug that would cause player build failures
[1.2.0] - 2019-05-23
Changed
- Increase unity version to 2019.2
[1.1.0] - 2019-05-22
Changed
- Update assembly definition formats to avoid testables in package manifest
[1.0.9] - 2019-05-21
Changed
- Update scripting runtime setting for 2019.3
[1.0.8] - 2019-03-08
Added
- Automation test deploy
[1.0.7] - 2019-03-08
Added
- Automation test deploy
[1.0.6] - 2019-03-04
Changed
- Updated changelog
[1.0.5] - 2019-03-04
Added
- Conditional support for 2019.1
[1.0.4] - 2019-02-18
Removed
- Unnecessary meta files
[1.0.3] - 2019-02-18
Changed
- package.json update
[1.0.2] - 2019-02-18
Changed
- package.json update
[1.0.1] - 2019-02-18
Changed
- Updated Documentation to reflect breaking changes
[1.0.0] - 2019-02-15
Changed
- Refactor attributes
[0.1.50] - 2019-01-15
Changed
- Results paths to persistent data
[0.1.49] - 2018-12-04
Changed
- Revert changes to profiler and GC
[0.1.48] - 2018-11-22
Changed
- Doc updates and ignore GC api in editor due to api issues
[0.1.47] - 2018-11-14
Removed
- Debug logs
[0.1.46] - 2018-11-14
Fixed
- Breaking changes introduced by testrunner API rename
[0.1.45] - 2018-11-08
Fixed
- Breaking changes to data submodule
[0.1.44] - 2018-11-08
Changed
- Disable GC and update API to work around warning
[0.1.43] - 2018-10-30
Fixed
- Method measurements setup and cleanup
[0.1.42] - 2018-10-15
Added
- Button on report window to open profiler output for test
- Save profiler output on perf tests
Removed
- Unsupported features for legacy scripting runtime
- Unnecessary assembly definition
Fixed
- Version attribute for test cases
[0.1.41] - 2018-10-02
Added
- Test report graph
[0.1.40] - 2018-09-17
Changed
- Update documentation
[0.1.39] - 2018-09-14
Removed
- Duplicate module from docs
[0.1.38] - 2018-09-14
Changed
- Updated documentation
[0.1.36] - 2018-08-27
Changed
- ProfilerMarkers now take params as arguments
[0.1.35] - 2018-08-27
Added
Measure.Method improvements:
- Add GC allocation to Measure.Method
- Add setup/cleanup for Measure.Method
- Move order of calls for Measure.Scope
[0.1.34] - 2018-08-16
Fixed
- Obsolete warnings
[0.1.33] - 2018-08-03
Fixed
- Obsolete warnings, doc update with modules and internals, ValueSource fix
[0.1.32] - 2018-07-09
Added
- Method and Frames measurements can now specify custom warmup, measurement and iteration counts
[0.1.31] - 2018-07-04
Changed
- Marked metadata tests with performance category
[0.1.30] - 2018-06-27
Fixed
- Method measurement
[0.1.29] - 2018-06-12
Changed
- Moving back to json in xml due to multiple instabilities
[0.1.28] - 2018-06-01
Removed
- json printing from output
[0.1.27] - 2018-05-31
Added
- Meta files to npm ignore
[0.1.26] - 2018-05-31
Changed
Preparing package for moving to public registry:
- Inversed changelog order
- Excluded CI files from published package
[0.1.25] - 2018-05-31
Removed
- Missing meta files
[0.1.24] - 2018-05-31
Changed
- Print out json to xml by default for backwards compatability
[0.1.23] - 2018-05-30
Fixed
- Issues with packman, bumping up version
[0.1.22] - 2018-05-29
Added
- Option to specify custom Measure.Method Execution and Warmup count
[0.1.21] - 2018-05-25
Fixed
- Issues introduced by .18 fix
[0.1.19] - 2018-05-24
Changed
- Package has been renamed to
com.unity.test-framework.performanceto match test framework
[0.1.18] - 2018-05-24
Fixed
- Fix SetUp and TearDown for 2018.1
[0.1.17] - 2018-05-23
Changed
- Refactor Method and Frames measurements
- Metadata collected using internal test runner API and player connection for 2018.3+
[0.1.16] - 2018-05-09
Fixed
- Bug fix regarding measureme methods being disposed twice
[0.1.15] - 2018-05-02
Fixed
- Metadata test, the test was failing if a json file was missing for playmode tests
[0.1.14] - 2018-04-30
Added
- Addition of measuring a method or frames for certain amount of times or for duration
- Introduced SampleGroupDefinition
Changed
- Refactored measuring methods
Removed
- Removes linq usage for due to issues with AOT platforms
[0.1.13] - 2018-04-15
Added
- Added total, std and sample count aggregations
- Added sample unit to multi sample groups
Removed
- Removed totaltime from frametime measurements
Fixed
- Fixed android metadata collecting
[0.1.12] - 2018-04-11
Changed
- Naming
Fixed
- json serialization
[0.1.11] - 2018-04-09
Fixed
- 2018.1 internal namespaces
[0.1.10] - 2018-04-09
Added
- Added editmode and playmode tests that collect metadata
Changed
- Change fields to UpperCamelCase
[0.1.9] - 2018-04-06
Added
- json output for 2018.1 which will be printed after test run
[0.1.8] - 2018-04-03
Fixed
- Fix an exception on 2018.1
[0.1.7] - 2018-04-03
Changed
- Changed some of the names to match new convention
- Addressed typos in docs
- Multiple overloads replaced by using default arguments
[0.1.6] - 2018-03-28
Added
- Measure.Custom got a new overload with SampleGroup
- Readme now includes installation and more examples
[0.1.5] - 2018-03-20
Added
- Checks for usage outside of Performance tests
[0.1.4] - 2018-03-20
Added
- System info to performance test output
- Preparing for reporting test data
[0.1.3] - 2018-03-14
Removed
- Temporarily removing tests from the package into separate repo
[0.1.2] - 2018-03-14
Fixed
- Update for a missing bracket
[0.1.1] - 2018-03-14
Added
- Test output now includes json that can be used to parse performance data from TestResults.xml
- Added defines to be compatible with 2018.1 and newer
- Measurement methods can now take in SampleGroup as argument
Removed
- Removed unnecessary overloads for measurements due to introduction of SampleGroup
[0.1.0] - 2018-02-27
This is the first release of Unity Package performancetesting.
Initial version.