Skip to content

Commit 1efd287

Browse files
committed
Added some caching to /release/ pages. With now more than 350 releases, the page response times had increased to typically 4s. Caching in view and template brought this down to ~160ms.
- Legacy-Id: 16744
1 parent d7c4639 commit 1efd287

2 files changed

Lines changed: 22 additions & 13 deletions

File tree

ietf/release/views.py

Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -60,18 +60,23 @@ def get_changelog_entries():
6060
cache.set(cache_key, log_entries, 60*60*24)
6161
return log_entries
6262

63+
entries = None
64+
log_entries = None
65+
coverage_data = None
6366
def release(request, version=None):
64-
entries = {}
65-
log_entries = get_changelog_entries()
66-
if not log_entries:
67-
return HttpResponse("Error: changelog file %s not found" % settings.CHANGELOG_PATH)
68-
next = None
69-
for entry in log_entries:
70-
if next:
71-
next.prev = entry
72-
entry.next = next
73-
next = entry
74-
entries = dict((entry.version, entry) for entry in log_entries)
67+
global entries, log_entries, coverage_data
68+
if not entries:
69+
log_entries = get_changelog_entries()
70+
if not log_entries:
71+
return HttpResponse("Error: changelog file %s not found" % settings.CHANGELOG_PATH)
72+
next = None
73+
for entry in log_entries:
74+
if next:
75+
next.prev = entry
76+
entry.next = next
77+
next = entry
78+
entries = dict((entry.version, entry) for entry in log_entries)
79+
7580
if version == None or version not in entries:
7681
version = log_entries[0].version
7782
entries[version].logentry = trac_links(escape(entries[version].logentry.strip('\n')))
@@ -83,7 +88,8 @@ def release(request, version=None):
8388
code_coverage_time = datetime.datetime.fromtimestamp(os.path.getmtime(settings.TEST_CODE_COVERAGE_REPORT_FILE))
8489

8590
coverage = {}
86-
coverage_data = get_coverage_data()
91+
if not coverage_data:
92+
coverage_data = get_coverage_data()
8793
if version in coverage_data:
8894
coverage = coverage_data[version]
8995
for key in coverage:

ietf/templates/release/release.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{% extends "base.html" %}
22
{# Copyright The IETF Trust 2015, All Rights Reserved #}
3-
{% load origin %}
3+
{% load origin %}{% load cache %}
44

55
{% block title %}Release information{% endblock %}
66

@@ -51,8 +51,10 @@ <h2>{{ entry.version }} release notes</h2>
5151

5252
-- {{entry.author}} &lt;{{entry.email}}&gt; {{entry.date}}
5353
</pre>
54+
{% cache 3600 ietf_release_list %}
5455
<div id="release-list"></div>
5556
<h2>Release list:</h2>
57+
5658
<table style="margin-left: 3em" class="table-striped">
5759
<tbody>
5860
{% for item in releases %}
@@ -74,6 +76,7 @@ <h2>Release list:</h2>
7476
{% endfor %}
7577
</tbody>
7678
</table>
79+
{% endcache %}
7780
</div>
7881
{% endblock %}
7982

0 commit comments

Comments
 (0)