[Piglit] [PATCH 0/6] Add support for JSON backend to use a streaming writer

Dylan Baker dylan at pnwbakers.com
Fri Aug 26 20:11:46 UTC 2016

This series adds support for using jsonstreams, which is a package I
wrote for writing JSON documents using a streaming API. The goal is to
reduce the memory usage of piglit, especially while writing out the
final result file.

This is a purely optional dependency, and those with fast machines with
a lot of RAM might not care, but machines with memory constraints this
should help a lot. I noticed that on my machine, writing out the final
document requires about 4Gb of RAM without this series, and once the
tests are finishes only goes up by a 1Mb or so while writing
result.json without compression. Obviously compression will add
additional overhead.

jsonstreams is available throught pypi (the python package index) and
can be installed through pip (pip install --user jsonstreams) and
supports the same versions of python that piglit itself does (2.7, 3.3,
3.4, and 3.5 currently). Archlinux users can install packages from the
aur called python-jsonstreams and python2-jsonstreams.

Dylan Baker (6):
  Revert "piglit: Print help instead of excepting if no arguments are given"
  unittests: Fix shared data for backends.
  framework: Add support for jsonstreams
  tox: add a streams target.
  unittests: Fix JSON schema test to pass time_elapsed
  unittests: don't require totals section in schema

 .travis.yml                                       |   8 +-
 appveyor.yml                                      |   8 +-
 framework/backends/json.py                        | 111 ++++++++++-----
 piglit                                            |   1 +-
 tox.ini                                           |   6 +-
 unittests/framework/backends/schema/piglit-8.json |   2 +-
 unittests/framework/backends/shared.py            |   7 +-
 unittests/framework/backends/test_json.py         |   3 +-
 8 files changed, 97 insertions(+), 49 deletions(-)

git-series 0.8.10

More information about the Piglit mailing list