ProfilingGC

From Gnash Project Wiki

Jump to: navigation, search

Contents

Input movie

Profiling

Profiling is performed using the new -f switch of gnash, having gnash print the FPS every second.

Setup 1

Movie is run with gnash -1 -r0 -f1 -d1, which means:

  • no rendering
  • no sound
  • 1 millisecond of delay between iterations
  • play once

The movie is run 10 times, and the average printed FPS is taken at end of each run. Note that the average is slightly off due to a bug in the fps printing routine always printing an FPS of 0 the first time.

Gnash code is the CVS version as of Jul 2 2007 17:00 NY time. The test was run with three configurations:

  1. untouched source code (GC enabled)
  2. GC with expensive assertion ensuring the same GcResource is not added multiple time removed
  3. GC off

Here are the results:

* Code untouched 
Avg: 84.0923
Avg: 83.1723
Avg: 84.7131
Avg: 85.1333
Avg: 83.9496
Avg: 83.1289
Avg: 82.5998
Avg: 83.9886
Avg: 83.8675
Avg: 83.9114
Avg: 83.4771
GC collector run 4827 times
* GC expensive assertion removed
Avg: 88.3254
Avg: 87.7744
Avg: 89.0691
Avg: 96.5341
Avg: 90.0147
Avg: 88.665
Avg: 88.9902
Avg: 89.0389
Avg: 93.1845
Avg: 88.2487
GC collector run 4827 times
* GC disabled
Avg: 109.195
Avg: 108.568
Avg: 108.443
Avg: 108.741
Avg: 108.952
Avg: 109.027
Avg: 109.045
Avg: 109.015
Avg: 109.29
Avg: 108.849
* GC collector only running if more then 10 collectables were added into the list since last run (and the expensive assertion removed)
Avg: 107.248
Avg: 107.122
Avg: 107.775
Avg: 107.566
Avg: 106.615
Avg: 107.875
Avg: 107.139
Avg: 107.738
Avg: 107.243
Avg: 107.543
The collector run 134 times in this case

Interesting testcases