profiling_chart.twig 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. <fieldset>
  2. <legend>{% trans 'Profiling' %}</legend>
  3. <div class="floatleft">
  4. <h3>{% trans 'Detailed profile' %}</h3>
  5. <table id="profiletable">
  6. <thead>
  7. <tr>
  8. <th>
  9. {% trans 'Order' %}
  10. <div class="sorticon"></div>
  11. </th>
  12. <th>
  13. {% trans 'State' %}
  14. <div class="sorticon"></div>
  15. </th>
  16. <th>
  17. {% trans 'Time' %}
  18. <div class="sorticon"></div>
  19. </th>
  20. </tr>
  21. </thead>
  22. <tbody>
  23. {{ detailed_table|raw }}
  24. </tbody>
  25. </table>
  26. </div>
  27. <div class="floatleft">
  28. <h3>{% trans 'Summary by state' %}{{ show_mysql_docu('general-thread-states') }}</h3>
  29. <table id="profilesummarytable">
  30. <thead>
  31. <tr>
  32. <th>
  33. {% trans 'State' %}
  34. <div class="sorticon"></div>
  35. </th>
  36. <th>
  37. {% trans 'Total Time' %}
  38. <div class="sorticon"></div>
  39. </th>
  40. <th>
  41. {% trans '% Time' %}
  42. <div class="sorticon"></div>
  43. </th>
  44. <th>
  45. {% trans 'Calls' %}
  46. <div class="sorticon"></div>
  47. </th>
  48. <th>
  49. {% trans 'ø Time' %}
  50. <div class="sorticon"></div>
  51. </th>
  52. </tr>
  53. </thead>
  54. <tbody>
  55. {% for name, stats in states %}
  56. <tr>
  57. <td>{{ name }}</td>
  58. <td align="right">
  59. {{ format_number(stats['total_time'], 3, 1) }}s
  60. <span class="rawvalue hide">{{ stats['total_time'] }}</span>
  61. </td>
  62. <td align="right">
  63. {{ format_number(100 * (stats['total_time'] / total_time), 0, 2) }}%
  64. </td>
  65. <td align="right">{{ stats['calls'] }}</td>
  66. <td align="right">
  67. {{ format_number(stats['total_time'] / stats['calls'], 3, 1) }}s
  68. <span class="rawvalue hide">
  69. {{ (stats['total_time'] / stats['calls'])|number_format(8, '.', '') }}
  70. </span>
  71. </td>
  72. </tr>
  73. {% endfor %}
  74. </tbody>
  75. </table>
  76. <script type="text/javascript">
  77. url_query = '{{ url_query }}';
  78. </script>
  79. </div>
  80. <div class='clearfloat'></div>
  81. <div id="profilingChartData" class="hide">
  82. {{ chart_json|json_encode() }}
  83. </div>
  84. <div id="profilingchart" class="hide"></div>
  85. <script type="text/javascript">
  86. AJAX.registerOnload('sql.js', function () {
  87. Sql.makeProfilingChart();
  88. Sql.initProfilingTables();
  89. });
  90. </script>
  91. </fieldset>