Skip to content

Commit 64f6f38

Browse files
Update the 'About' page
1 parent 0a51501 commit 64f6f38

4 files changed

Lines changed: 170 additions & 110 deletions

File tree

‎codespeed/urls.py‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
# -*- coding: utf-8 -*-
22
from django.urls import re_path
3-
from django.views.generic import TemplateView
43

54
from codespeed import views
65
from codespeed.feeds import LatestEntries, LatestSignificantEntries
76

87
urlpatterns = [
98
re_path(r'^$', views.HomeView.as_view(), name='home'),
10-
re_path(r'^about/$',
11-
TemplateView.as_view(template_name='about.html'), name='about'),
9+
re_path(r'^about/$', views.about, name='about'),
1210
# RSS for reports
1311
re_path(r'^feeds/latest/$', LatestEntries(), name='latest-results'),
1412
re_path(r'^feeds/latest_significant/$', LatestSignificantEntries(),

‎codespeed/views.py‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33

44
import json
55
import logging
6+
import os
7+
import subprocess
68

79
import django
810
from django.conf import settings
@@ -985,3 +987,21 @@ def makeimage(request):
985987
response['Content-Disposition'] = 'attachment; filename=image.png'
986988

987989
return response
990+
991+
992+
def _get_current_commit():
993+
try:
994+
repo_root = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
995+
return subprocess.check_output(
996+
['git', 'rev-parse', 'HEAD'],
997+
cwd=repo_root,
998+
stderr=subprocess.DEVNULL,
999+
).decode().strip()
1000+
except Exception:
1001+
return None
1002+
1003+
_CURRENT_COMMIT = _get_current_commit()
1004+
1005+
1006+
def about(request):
1007+
return render(request, 'about.html', {'commit': _CURRENT_COMMIT})

‎speed_python/static/css/about.css‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/* About page: inline code and a couple of reference tables */
2+
div.about_content code {
3+
font-family: var(--font-mono);
4+
font-size: 0.92em;
5+
padding: 0.05em 0.3em;
6+
border-radius: 4px;
7+
background-color: var(--surface-alt);
8+
}
9+
10+
table.about-table {
11+
width: 100%;
12+
max-width: 100ch;
13+
margin: 0.8em 0 1.2em;
14+
border-collapse: collapse;
15+
font-size: 0.93em;
16+
text-align: left;
17+
}
18+
table.about-table th, table.about-table td {
19+
padding: 0.45em 0.6em;
20+
vertical-align: top;
21+
border-bottom: 1px solid var(--border);
22+
}
23+
table.about-table th {
24+
font-weight: 600;
25+
color: var(--text-faint);
26+
border-bottom-width: 2px;
27+
}
28+
table.about-table td code { white-space: nowrap; }
29+
table.about-table tr.retired td { color: var(--text-faint); }

‎speed_python/templates/about.html‎

Lines changed: 120 additions & 107 deletions
Original file line numberDiff line numberDiff line change
@@ -1,119 +1,132 @@
11
{% extends "codespeed/base_site.html" %}
2-
{% block title %}{{ block.super }}: About this site{% endblock %}
2+
{% load static %}
3+
{% block title %}{{ block.super }}: About{% endblock %}
4+
5+
{% block extra_head %}
6+
<link rel="stylesheet" type="text/css" href="{% static 'css/about.css' %}" />
7+
{% endblock %}
8+
39
{% block body %}
410
<div id="sidebar">
511
</div>
612
<div id="about" class="about_content clearfix">
713

8-
<h3>About this site</h3>
9-
<p>Welcome to the speed.python.org project - this project is aimed at
10-
constructing a shared benchmark system based on the excellent
11-
<a href="https://speed.pypy.org/" target="_blank">speed.pypy.org</a>
12-
project.
13-
</p>
14-
15-
<p>This project will setup a common, shared instance of the benchmarking
16-
suite and visualization tools put together by the
17-
<a href="https://pypy.org/" target="_blank">PyPy team</a>, based on work
18-
from the <a href="https://code.google.com/p/unladen-swallow/" target="_blank">
19-
Unladen Swallow project</a>.
20-
</p>
21-
22-
<p>Coming out of the PyCon 2011 VM and language summits, it was commonly
23-
agreed that PyPy, CPython, IronPython and Jython should strive to move
24-
to a common set of benchmarks and a single performance-oriented site.
25-
This was agreed upon by the maintainers present at the conference, and
26-
included leads from all of the major implementations. This project
27-
would be lead by the various VM development teams, and based around
28-
the Unladen Swallow/PyPy benchmark suite.
29-
</p>
30-
31-
<p>Once set up, this site will be prominently linked on Python.org, and serve
32-
as a resource for all Python users - both existing and potential - to evaluate
33-
the various Python runtimes on both performance, memory usage, etc. Our goal is
34-
to provide a resource that will both educate and assist users, maintainers and
35-
the community as a whole.
36-
</p>
37-
38-
<p>You can see the announcement, and more details at the announcement of the
39-
machine acquisition on
40-
<a href="https://web.archive.org/web/20170824021111/http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/" target="_blank">
41-
Jesse Noller's blog.</a></p>
42-
43-
<p>For now, only CPython is being benchmarked, but we hope to expand in the future.</p>
44-
45-
<h3>The Benchmark Machines</h3>
46-
47-
<p>On speed.python.org both <b>x86</b> and <b>AArch64</b> architectures are being
48-
measured. Below the specs of the machines used.</p>
49-
50-
<h4>The x86 machine</h4>
51-
<p>Nicknamed "the beast", the machine was generously donated to the Python
52-
Software foundation by the <a href="https://hp.com/go/linux" target="_blank">
53-
HP Open Source Program office</a>.</p>
54-
55-
<p>The hardware specs are:
14+
<h2>About the Python Speed Center</h2>
15+
<p>The <a href="https://speed.python.org/">Python Speed Center</a>
16+
is the public performance dashboard for <a href="https://www.python.org/">CPython</a>.
17+
Every night it builds the current development branch and the maintenance
18+
branches from source, runs the <a href="https://github.com/python/pyperformance">pyperformance</a>
19+
benchmark suite on dedicated hardware, and records the results here so that
20+
anyone can see how the interpreter's speed changes commit by commit.</p>
21+
22+
<h2>Executables and machines</h2>
23+
<p>On this site an <em>executable</em> is a particular way of building
24+
CPython and an <em>environment</em> is the machine it ran on. The names below
25+
are the ones that can be selected in the sidebars.</p>
26+
27+
<table class="about-table">
28+
<thead>
29+
<tr><th>Environment</th><th>Machine</th><th>Results</th></tr>
30+
</thead>
31+
<tbody>
32+
<tr>
33+
<td><code>speed-python</code></td>
34+
<td>x86-64: <a href="#machine-x86">HP ProLiant DL380 G7</a> at OSUOSL</td>
35+
<td>October 2021 to present</td>
36+
</tr>
37+
<tr>
38+
<td><code>ampere-one</code></td>
39+
<td>AArch64: <a href="#machine-aarch64">Ampere One server</a> hosted by Arm</td>
40+
<td>August 2025 to present</td>
41+
</tr>
42+
<tr class="retired">
43+
<td><code>arm-neoverse</code></td>
44+
<td>AArch64: the previous Arm Neoverse machine, replaced by
45+
<code>ampere-one</code></td>
46+
<td>May 2023 to August 2025</td>
47+
</tr>
48+
<tr class="retired">
49+
<td><code>bb-benchmark-machine</code></td>
50+
<td>A separate, short-lived benchmark worker</td>
51+
<td>October 2021 to March 2023</td>
52+
</tr>
53+
<tr class="retired">
54+
<td><code>speed-python-historical</code></td>
55+
<td>Results from before the current <code>speed-python</code>
56+
environment was set up, kept for reference</td>
57+
<td>November 2020 to October 2021</td>
58+
</tr>
59+
</tbody>
60+
</table>
61+
62+
<p>Retired environments no longer receive results but are kept so that old
63+
data stays reachable through the Timeline and Comparison pages.</p>
64+
65+
<h3 id="machine-x86">The x86-64 machine (<code>speed-python</code>)</h3>
66+
<p>Nicknamed "the beast", this server was donated to the Python Software
67+
Foundation by the HP Open Source Program Office in 2011. The acquisition was
68+
announced on
69+
<a href="https://web.archive.org/web/20170824021111/http://jessenoller.com/2011/06/29/announcing-the-new-speed-python-org-machine/">Jesse
70+
Noller's blog</a>.</p>
5671
<ul>
57-
<li>DL380 HP DL380G7 X5670 LFF (2U)</li>
58-
<li>Dual HP NC382i Dual Port Multifunction Gigabit Server Adapters</li>
59-
<li>HP Smart Array P410i/1GB FBWC Controller</li>
60-
<li>4x 4GB (1x4GB) Dual Rank x4 PC3-10600 (DDR3-1333) Registered CAS-9
61-
Memory Kit</li>
62-
<li>2x HP 750W Common Slot Gold Hot Plug Power Supply Kit</li>
63-
<li>HP iLO Advanced including 1yr 24x7 Technical Support and Updates
64-
Electronic License</li>
65-
<li>4x HP 300GB 6G SAS 15K rpm LFF (3.5-inch) Dual Port Enterprise 3yr
66-
Warranty Hard Drive</li>
67-
<li>2 HP DL380 G7 Intel® Xeon® X5680 (3.33GHz/6-core/130W/12MB) FIO
68-
Processor Kit</li>
72+
<li>HP ProLiant DL380 G7 (2U)</li>
73+
<li>2&times; Intel Xeon X5680, 3.33&nbsp;GHz, 6 cores each, 12&nbsp;MB cache</li>
74+
<li>16&nbsp;GB RAM (4&times; 4&nbsp;GB DDR3-1333 registered, dual rank)</li>
75+
<li>4&times; 300&nbsp;GB 15k rpm SAS drives on an HP Smart Array P410i
76+
controller with 1&nbsp;GB flash-backed write cache, hardware RAID with a
77+
simple LVM layout</li>
78+
<li>Dual HP NC382i dual-port gigabit adapters, redundant 750&nbsp;W power
79+
supplies, iLO Advanced</li>
80+
<li>Ubuntu 18.04 LTS</li>
6981
</ul>
70-
The machine is configured with Ubuntu 18.04 LTS, HW RAID and a simple LVM setup.
71-
HP's generous donation can not be spoken of highly enough.
72-
</p>
73-
74-
<p>The racking, stacking and hardware administration and all bandwidth has been
75-
generously donated by the <a href="https://osuosl.org/" target="_blank">
76-
The Oregon State University Open Source Lab</a> (OSUOSL)
77-
who have been amazing open source supporters, and supporters of the Python
78-
Software foundation.</p>
79-
80-
<p>We can not thank OSUOSL enough for the hosting and administration.</p>
81-
82-
<h4>The AArch64 machine</h4>
83-
<p>The machine was generously donated by <a href="https://www.arm.com">
84-
Arm Ltd</a> to the PSF.</p>
85-
86-
<p>The hardware specs are:
82+
<p>Racking, hardware administration and all bandwidth are donated by the
83+
<a href="https://osuosl.org/">Oregon State University Open Source Lab</a>
84+
(OSUOSL), long-standing supporters of open source and of the PSF. We are very
85+
grateful to both HP and OSUOSL.</p>
86+
87+
<h3 id="machine-aarch64">The AArch64 machine (<code>ampere-one</code>)</h3>
88+
<p>This server was donated to the PSF by <a href="https://www.arm.com/">Arm
89+
Ltd</a>, who also host it.</p>
8790
<ul>
88-
<li>192 Ampere 64-bit, Arm v8.6+. 3.6Ghz, L2: 2MB/core, L1: 16KB ICache/core, 64KB DCache/core</li>
89-
<li>512 GB (8 x 64 GB DDR5 Registered (Buffered) @ 5200 MT/s)</li>
90-
<li>1x1.7TB NVMe, 1x3.5TB NVMe</li>
91-
<li>2x10Gbps</li>
91+
<li>Ampere One, 192 cores, 64-bit Armv8.6+, 3.6&nbsp;GHz</li>
92+
<li>Per core: 2&nbsp;MB L2, 16&nbsp;KB L1 instruction cache, 64&nbsp;KB L1
93+
data cache</li>
94+
<li>512&nbsp;GB RAM (8&times; 64&nbsp;GB DDR5-5200 registered)</li>
95+
<li>1.7&nbsp;TB and 3.5&nbsp;TB NVMe drives</li>
96+
<li>2&times; 10&nbsp;Gbps networking</li>
97+
<li>Ubuntu 24.04 LTS, managed through the
98+
<a href="https://github.com/python/psf-salt">PSF Salt infrastructure</a>;
99+
<a href="https://github.com/diegorusso">Diego Russo</a> has serial console
100+
access</li>
92101
</ul>
93-
94-
The machine is configured with Ubuntu 24.04.3 LTS and managed by the
95-
<a href="https://github.com/python/psf-salt">PSF Salt Infrastructure</a>. Also
96-
<a href="https://github.com/diegorusso">Diego Russo</a> has serial access to it.</p>
97-
98-
<p>The machine is hosted by <a href="https://www.arm.com/">Arm Ltd</a>.</p>
99-
<p>We can not thank Arm enough for the hosting and administration.</p>
100-
101-
<h3>About the benchmarks</h3>
102-
<p>The code can be found <a href="https://github.com/python/pyperformance">here</a>.</p>
103-
104-
<h3>About Python</h3>
105-
<p>Python is a programming language that lets you work quickly and integrate systems more effectively.</p>
106-
<p>Main website: <a href="https://python.org/">python.org</a></p>
107-
108-
<h3>About Codespeed</h3>
109-
Codespeed is a web application to monitor and analyze the performance of your code.
110-
<p>Original Code: <a href="https://github.com/tobami/codespeed">github.com/tobami/codespeed</a></p>
111-
<p>Code for this site: <a href="https://github.com/python/codespeed/tree/speed.python.org">github.com/python/codespeed</a></p>
112-
<p>Wiki: <a href="https://github.com/tobami/codespeed/wiki">github.com/tobami/codespeed/wiki</a></p>
113-
114-
<h3>Contact</h3>
115-
<p>For problems or suggestions about this website write to us on
116-
<a href="https://discuss.python.org/c/core-dev/23">discuss.python.org</a>.
117-
</p>
102+
<p>We cannot thank Arm enough for the hardware, the hosting and the
103+
administration.</p>
104+
105+
<h2>History</h2>
106+
<p>The Speed Center started as a shared project between the CPython, PyPy,
107+
IronPython and Jython teams. At the PyCon 2011 VM and language summits the
108+
maintainers of the major implementations agreed to move to a common benchmark
109+
suite and a single performance-oriented site, modelled on the PyPy team's
110+
<code>speed.pypy.org</code> and using the Codespeed software they had adopted. HP donated
111+
the first machine the same year. Today the site focuses on CPython, results
112+
for PyPy can be found on <a href="https://speed.pypy.org/">speed.pypy.org</a>.</p>
113+
114+
<h2>Software</h2>
115+
<p>This site runs on <a href="https://github.com/tobami/codespeed">Codespeed</a>,
116+
a Django application for tracking and analysing the performance of a code
117+
base over time. The Speed Center's own fork, including the templates and
118+
styling you are looking at, is maintained at
119+
<a href="https://github.com/python/codespeed/tree/speed.python.org">python/codespeed</a>
120+
on the <code>speed.python.org</code> branch{% if commit %},
121+
currently at commit <a href="https://github.com/python/codespeed/commit/{{ commit }}"><code>{{ commit|slice:":12" }}</code></a>{% endif %}.</p>
122+
123+
<h2>Contact</h2>
124+
<p>Questions, problems and suggestions about this site are welcome in the
125+
<a href="https://discuss.python.org/c/core-dev/23">Core Development</a>
126+
category on discuss.python.org. Problems with the site's code can be reported
127+
on the <a href="https://github.com/python/codespeed/issues">python/codespeed
128+
issue tracker</a>, and problems with the benchmarks themselves on the
129+
<a href="https://github.com/python/pyperformance/issues">pyperformance
130+
tracker</a>.</p>
118131
</div>
119132
{% endblock %}

0 commit comments

Comments
 (0)