First, to answer your questions, perhaps more verbosely than requested, but hey, more information can't be bad, right…
- Hardware
- MacBook Pro: 15-inch, Mid 2009
- Processor: 2.66 GHz Intel Core 2 Duo
- Memory: 8 GB 1067 MHz DDR3
- Graphics: NVIDIA GeForce 9400M 256 MB
- Software (All 64-bit)
- Operating System: OS X 10.8.2
- Qt: 4.8.2
- Python: 2.7.3
- PySide: 1.1.1
- NumPy: 1.6.2
- pyqtgraph: 0.9.3
- What rates do you get from the "Line Plot update" example (including at different window sizes)?
- Fullscreen Window (~ 1440x900): ~ 75 FPS
- Default Window (~ 800x800): ~ 111 FPS
- Tiny Window (~ 100x100): ~ 130 FPS
- What happens if you put pg.QtGui.QApplication.setGraphicsSystem('raster') at the beginning of your program?
- Frame rates actually drop by ~4 FPS. For yours, 'native' gets the best frame rate. For Chaco, 'native' or 'opengl' get the best frame rate with 'opengl' occasionally taking the lead by ~1-2 FPS.
Since I'm going to eventually post the results to the AeroQuad forums, I'll let you have a sneak peek at what I'm currently doing to try and benchmark things. The code is currently available at:
https://gist.github.com/4448257.
The two things I've focused on while designing this are the minimization of any library specific code and the mimicry of what the final AeroQuad application will require. The latter is the reason I've chosen to do nine plots with grids, automatically adjusting axis labels, and antialiasing. Obviously, this is also probably going to be the most performance intensive setup, but if one of the libraries can handle it, there's no sense in decreasing the requirements - that library will simply be the "winner". In addition, if it can handle it, then chances are it would probably still outperform the other libraries if those features were disabled (I've done a few tests to verify this).
Obviously, I'm not an expert on your library, but I did try to imitate the benchmark you'd previously posted, simply switching out anything that could be replaced by something any potential graphing library could use. On an unrelated note, you don't yet see matplotlib there since although I did get it working in the configurator, it was rather excruciating to do so and I've yet to get the axis labels to automatically adjust with it so I'm not sure if I want to endure the pain once more to add it to the benchmark, especially since pyqtgraph and Chaco look to have better performance and easier setup anyway.