Before embarking into switching to a new lib, we need to get a baseline of the current performance so we can assess improvement.
There is such a system in newview/llmetricperformancetester.h and .cpp but it needs to be moved to llcommon, generalized and publicly documented.
Test Plan: Please refer to the wiki (https://wiki.secondlife.com/wiki/Performance_Testers) for more details on how to run perf metric with the new system. Here is a simple (yet efficient) test plan that runs through all the code written (test framework and specific Image compression/decompression test), follow the simple method here under:
- Using a Terminal window, navigate to the directory where the viewer executable is located. Note that on Mac, that means you need to navigate inside the Second Life.app folder (the bundle) to the Second Life.app/Content/MacOs subfolder.
- First gather baseline data launching the viewer with the following arguments. e.g. for Mac OS X:
./Second\ Life --logmetrics ImageCompressionTester
- While the app is running, browse around (choose a region with lots of textures) and take a couple of snapshots of 1024x800 that you choose to upload so to exercise the jp2 compressor
- Quit the viewer
-> Navigate to the log folder and verify that it contains a ImageCompressionTester.slp file
- Rename that file ImageCompressionTester_baseline.slp
- Go back to the Terminal window and relaunch the viewer with the following arguments. Again, example for Mac:
./Second\ Life --logmetrics ImageCompressionTester --analyzeperformance
- Go through the same browsing and snapshots taking scenario
- Quit the viewer
-> Navigate to the log folder and verify that it contains a new ImageCompressionTester.slp file as well as an ImageCompressionTester_report.csv file
- Open ImageCompressionTester_report.csv (you can use OpenOffice for this)
-> Verify that it contains the result of the test (it compares baseline and current run)
If time allows, redo the whole here above tests using the following values instead of ImageCompressionTester:
- TextureTester : this will output Bao's texture analysis perf data
- metric: this will output both TextureTester and ImageCompressionTester in one single metric report