-
Notifications
You must be signed in to change notification settings - Fork 49
Tables: Workloads
Michael Droettboom edited this page Jun 2, 2022
·
6 revisions
See the benchmarking page for a discussion about Python workloads and benchmarks.
workload | category | ... |
---|---|---|
Web | Workloads used in typical server-side web applications | |
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 |
sub-workload | ... |
---|---|
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 |
sub-workload | ... |
---|---|
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)
(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.