I'm developing an audio oscilloscope-type program, which outputs frames as raw bytes to ffmpeg and ffplay (which plays back video and audio together, synchronized). I can also tell ffmpeg to output to file instead.
Originally I used matplotlib. I tried switching to pyqtgraph because I thought it would be faster. Unfortunately it ended up too slow for my use case. - Intel(R) Core(TM) i5-6200U CPU @ 2.30GHz, turbo 2.70GHz - Windows 10 x64 (I can try Kubuntu 18.04 later) - Miniconda Python 3.6.6 - pyqtgraph 0.11.0.dev0+g2e69b9c I adapted pyqtgraph's speed test to resemble my data more closely (hide all axises, no title, don't write fps to canvas): - https://gist.github.com/jimbo1qaz/472242d89a8fde421c39b4f86bf48b0e#file-pyqtgraph-speed-gui-py - output to GUI - 200-300fps - https://gist.github.com/jimbo1qaz/472242d89a8fde421c39b4f86bf48b0e#file-pyqtgraph-speed-image-py - output to QImage - starts at 766.36 fps, declines to 40-80fps (randomly toggles every few seconds, may possibly depend on window focus) In my own app rendering tests, I usually get 50-120fps, depending on data and number of plots. In any case, this is far worse than matplotlib with axis drawing disabled (118-158fps). In either case, stopping in PyCharm (which sends Ctrl+C) results in "Process finished with exit code -1" instead of a stacktrace, which prevents me from taking a cProfile snapshot of my above speed demo. I attached 2 cProfile logs. I closed the GUI after an approximate amount of time, and terminated the QImage code using "for i in range(600)". -- You received this message because you are subscribed to the Google Groups "pyqtgraph" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/pyqtgraph/055c582e-5018-4c37-a977-6b07062e103e%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
pyqtgraph cprofile.7z
Description: application/7z-compressed
