gl-website-deployer/admin/phpMyAdmin/templates/sql/profiling_chart.twig
2024-11-23 20:45:29 +01:00

101 lines
2.8 KiB
Twig

<fieldset class="pma-fieldset">
<legend>{% trans 'Profiling' %}</legend>
<div class="float-start mx-2">
<h3>{% trans 'Detailed profile' %}</h3>
<table class="table table-sm table-striped" id="profiletable">
<thead>
<tr>
<th>
{% trans 'Order' %}
<div class="sorticon"></div>
</th>
<th>
{% trans 'State' %}
<div class="sorticon"></div>
</th>
<th>
{% trans 'Time' %}
<div class="sorticon"></div>
</th>
</tr>
</thead>
<tbody>
{% for state in profiling.profile %}
<tr>
<td>{{ loop.index }}</td>
<td>{{ state.status }}</td>
<td class="text-end">
{{ state.duration }}s
<span class="rawvalue hide">{{ state.duration_raw }}</span>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class="float-start mx-2">
<h3>{% trans 'Summary by state' %}{{ show_mysql_docu('general-thread-states') }}</h3>
<table class="table table-sm table-striped" id="profilesummarytable">
<thead>
<tr>
<th>
{% trans 'State' %}
<div class="sorticon"></div>
</th>
<th>
{% trans 'Total Time' %}
<div class="sorticon"></div>
</th>
<th>
{% trans '% Time' %}
<div class="sorticon"></div>
</th>
<th>
{% trans 'Calls' %}
<div class="sorticon"></div>
</th>
<th>
{% trans 'ø Time' %}
<div class="sorticon"></div>
</th>
</tr>
</thead>
<tbody>
{% for name, stats in profiling.states %}
<tr>
<td>{{ name }}</td>
<td class="text-end">
{{ format_number(stats.total_time, 3, 1) }}s
<span class="rawvalue hide">{{ stats.total_time }}</span>
</td>
<td class="text-end">
{{ format_number(100 * (stats.total_time / profiling.total_time), 0, 2) }}%
</td>
<td class="text-end">{{ stats.calls }}</td>
<td class="text-end">
{{ format_number(stats.total_time / stats.calls, 3, 1) }}s
<span class="rawvalue hide">
{{ (stats.total_time / stats.calls)|number_format(8, '.', '') }}
</span>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>
<div class='clearfloat'></div>
<div id="profilingChartData" class="hide">
{{- profiling.chart|json_encode() -}}
</div>
<div id="profilingchart" class="hide"></div>
<script type="text/javascript">
AJAX.registerOnload('sql.js', function () {
Sql.makeProfilingChart();
Sql.initProfilingTables();
});
</script>
</fieldset>