Skip to content

Tables: Workloads

Eric Snow edited this page Jun 2, 2022 · 6 revisions

See the benchmarking page for a discussion about Python workloads and benchmarks.

Top-level Workloads

workload sub-workload description ...
Web Workloads used in typical server-side web applications
Template rendering Rendering HTML using a template language
HTML parsing Parsing HTML content
JSON handling Time to serialize and deserialize JSON
Regular expressions Common regular expression uses for web applications
Database Common database workloads in web applications
HTTP server Cost of serving HTTP requests
Image rasterization Generating images from a vector form
Cryptography Calculating cryptographic hashes and ciphers
Commandline Workloads import to cli apps, such as application startup
Numeric Numeric workloads (in pure Python, without common numeric libraries)
Puzzles Puzzles, often derived from standard cross-language benchmarks, often exercising graph-like data structures

Alternative (top-level/app focus):

workload sub-workload description examples ... ...
one-off
quick script
REPL
instruction (edu)
demo
Jupyter
tool (CLI)
script
app
client (front-end only)
library-as-script
tool (GUI) e.g. via tkinter or pyqt
self-contained
front-end only
devops
short-running tools
long-running tools
automation
"web"
static site
dynamic site
"function"
service API
data science
data processing
scientific computing
finance
machine learning
games
complete (e.g. via pygame)
backend (e.g. eve)
...
  • (The above is obviously incomplete and some workloads might be subdivided, combined, or moved around.)
  • (There are also usage categories that aren't quite workloads: prototyping, adaptation (glue).)

Alternative (sub-community focus):

community workload description examples ... ...
programming hobbyist
programmer
devops
web
education
data science
scientific computing
machine learning
finance
maker
embedded hardware
games
automation
enterprise
...

XXX Workloads can be sub-categorized by the resources they use:

resource ...
filesystem
network
database
SCM repo
library (Python)
library (non-Python)

Stdlib Applications

The Python stdlib includes a number of tools (applications) which can be matched, respectively, to a workload. We can use them as examples:

  • json.tool - ...
  • 2to3 - Migrates Python 2 to Python 3 source code. (Deprecated in Python 3.11, to be removed in 3.13)

pyperformance Benchmarks

(These "workload" benchmarks are all considered macro benchmarks.)

workload benchmark description
2to3 2to3 Runs the 2to3 tool over 9 files from the Django 1.1.4 source code
Template rendering chameleon Renders a large HTML table using the chameleon template library
django_template Renders a large HTML table using the django_template library
genshi_template Renders a large HTML template using the genshi library
mako Renders a large HTML table using the mako library
HTML parsing html5lib Time to parse an HTML file using html5lib
JSON handling json_dumps Time to dump JSON
json_loads Time to load JSON
Regular expressions regex_v8 A benchmark derived from regular expressions used on popular webpages
Database sqlalchemy_declarative
sqlalchemy_imperative
sqlite_synth
HTTP Server tornado
Image rasterization chaos Generates an image from splines
raytrace Simple raytracer
Cryptography crypto_pyaes Calculate AES block cipher using the pyaes library
Commandline hg_startup Measure the time to get the output of Mercurial's hg help
python_startup Measure python startup time
python_startup_nosite Measure python startup time without importing the site module
Numeric scimark_sor Successive over-relaxation benchmark
scimark_sparse_mat_mult Sparse matrix multiplication benchmark
scimark_monte_carlo Benchmark on the Monte Carlo algorithm to compute the area of a disc
scimark_lu LU decomposition benchmark
scimark_fft FFT benchmark
spectral_norm
sympy_*
Puzzles deltablue An implementation of the deltablue constraint-solving algorithm
fannkuch A permutation flipping game
go AI playing Go board game, using Zobrist hashing approach
hexiom Solver of the Hexiom board game
mdp Battle with damages and topological sorting of nodes in a graph
meteor_contest Solver for Meteor Puzzle board
nbody nbody benchmark from Computer Language Benchmarks Game
nqueens Simple, brute-force N-queens solver
richards

The dominant features in those benchmarks are enumerated on the features page.

Also see the per-benchmark tables.