feat: Add first WIP for engine load time

This commit is contained in:
Myzel394 2024-01-06 22:29:21 +01:00
parent 3535377c9a
commit d4dfec3f3e
No known key found for this signature in database
GPG key ID: 79CC92F37B3E1A2B
3 changed files with 26 additions and 4 deletions

View file

@ -441,5 +441,8 @@ class ResultContainer:
def add_timing(self, engine_name: str, engine_time: float, page_load_time: float):
self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time))
def get_timings(self):
def get_timings(self) -> List[Timing]:
return self.timings
def get_longest_loading_time(self) -> Timing:
return max(self.timings, key=itemgetter(1))

View file

@ -35,7 +35,22 @@
<div id="sidebar">
{%- if number_of_results != '0' -%}
<p id="result_count"><small>{{ _('Number of results') }}: {{ number_of_results }}</small></p>
<p id="result_count">
<small>{{ _('Number of results') }}: {{ number_of_results }}</small>
</p>
<details>
<summary>
<small>Longest loading time: {{ longest_loading_time.load }} from {{ longest_loading_time.engine }}</small>
</summary>
<div>
<ul>
{% for timing in loading_times %}
<li>
<small>{{ timing.load }} from {{ timing.engine }}</small>
</li>
{% endfor %}
</ul>
</details>
{%- endif -%}
{%- if infoboxes -%}

View file

@ -673,7 +673,9 @@ def search():
# 2. add Server-Timing header for measuring performance characteristics of
# web applications
request.timings = result_container.get_timings() # pylint: disable=assigning-non-slot
timings = result_container.get_timings()
request.timings = timings
longest_loading_time = result_container.get_longest_loading_time()
# 3. formats without a template
@ -791,7 +793,9 @@ def search():
settings['search']['languages'],
fallback=request.preferences.get_value("language")
),
timeout_limit = request.form.get('timeout_limit', None)
timeout_limit = request.form.get('timeout_limit', None),
longest_loading_time = longest_loading_time,
loading_times = timings,
# fmt: on
)