Necko/MobileCache/MicroBenchmarks: Difference between revisions

Jump to navigation Jump to search
Line 92: Line 92:
Time is measured in two ways: 1) for each individual load by by using the nsITimingChannel interface of the channel, and 2) by measuring run-time of the complete loop from the test itself.
Time is measured in two ways: 1) for each individual load by by using the nsITimingChannel interface of the channel, and 2) by measuring run-time of the complete loop from the test itself.


==== Generated datafiles ====
This test writes data into a number of files. '''Note that''' all files are appended, meaning that if they exist prior to the run, you will have strange data...
; summary.dat :  Format is multi-data with one datablock for each datasize run by the test. Each datablock has a header describing the datasize, then one row for each of the five configurations summing up the results from the loop. Datapoints are
# description of the configuration
# minimum value from the loop
# maximum value from the loop
# calculated mean over the results from the loop
# standard deviation over all data from the loop
# number of iterations in the loop
# time measured by the test using Data.now() for the loop
# time measured by the test using Data.now() for the loop, including syncing with the cache-io thread at the end
; telemetry-<bytes>.dat : One file for each datasize run by the test. The format is multi-data with one datablock for each configuration. Each row represents one resource-load in actual order. The datapoints in each row are
# time from create to asyncOpen
# time from asyncOpen to cacheEntryAvailable
# time from cacheEntryAvailable to cacheReadStart
# time from cacheReadStart to cacheReadEnd
alternatively (if loaded from channel, not from cache)
# time from create to asyncOpen
# time from asyncOpen to cacheEntryAvailable
# time from cacheEntryAvailable to responseStart
# time from responseStart to responseEnd
I.e. referring to the Telemetry-data accumulated by nsLoadGroup, (2+3) corresponds to Telemetry::HTTP_PAGE_OPEN_TO_FIRST_FROM_CACHE alternatively Telemetry::HTTP_PAGE_OPEN_TO_FIRST_RECEIVED, and (2+3+4) corresponds to Telemetry::HTTP_PAGE_COMPLETE_LOAD.
==== Files to work with GnuPlot (requires Gnuplot >= 4.4) ====
;settings.gnu: setup for the histogram, title of plot etc. Edit this to describe your platform.
;plot-summary.gnu: Plots mean-values from summary.dat in one histogram, grouped by first column. Standard deviation in the dataset is indicated as an errorline. This is the recommended starting-point for studying results from a test-run.
;plot-minmax-summary.gnu: Like above but indicates min and max values from the dataset instead of stddev.
;plot-summary-per-size.gnu and plot-minmax-summary-per-size.gnu: Plots summaries like the two plots above, but makes one plot for each datasize to avoid scaling-issues in the plot.
;plot-summary-from-javascript.gnu: '''This is WIP.''' Plots summaries of average loading-times seen from JS.
;plot-telemetry.gnu: You need to copy the file "telemetry-<size>.dat" to "telemetry.dat" for the size you want to study. Plots detailed information for each resource loaded, one plot for each configuration. The format used is a rowstacked histogram where each column shows total time from creating the channel to loading has finished.


=== test_timing_cache.js '''(Obsolete)''' ===
=== test_timing_cache.js '''(Obsolete)''' ===
97

edits

Navigation menu