Метрики производительности на определенных стандартных программах: какие-либо лучшие практики?

Сначала вы можете проверить, каково ваше настоящее имя столбца. Я заметил, что вы определили «имя» в вашем контроллере и просматриваете, но «имена» в вашей модели.

Кстати, когда вы определяете LogFileUpload.new в вашем контроллере, вы можете использовать его непосредственно в своем представлении, и не вызывать новый метод дважды:

<div class="container">   
<% if @log_file_upload.errors.present? %>    
   <div>   
      <ul>   
         <% @log_file_upload.errors.full_messages.each do |msg| %>   
            <li><%= msg %></li>   
         <% end %>
        </ul>   
   </div>   
<% end %>   

<div>   
   <%= form_for @log_file_upload, html: { multipart: true } do |f| %>   
      <%= f.label :name %>   
      <%= f.text_field :name %>   
      <br><br>   
      <%= f.label :attachment %>   
      <%= f.file_field :attachment %>   
      <br>   
      <%= f.submit "Save" %>   
   <% end %>   
</div>   

6
задан Kevin Fairchild 14 November 2008 в 19:21
поделиться

8 ответов

Подход нескольких раз Вы взятие даст Вам лучший взгляд на Вас производительность приложения. Вещи, которые я могу рекомендовать, состоят в том, чтобы использовать Систему. Диагностика. Секундомер вместо DateTime, DateTime составляет точных только до 16 мс, где Секундомер точен до галочки CPU.

Но я рекомендую дополнить его пользовательскими счетчиками производительности для производства и запущения приложения при профилировщике во время разработки.

1
ответ дан 10 December 2019 в 02:55
поделиться

Существуют некоторые доступные Профилировщики, но, откровенно говоря, я думаю, что Ваш подход лучше. Подход профилировщика является излишеством. Возможно, использование профилировщиков стоит проблемы, если у Вас абсолютно нет подсказки, где узкое место. Я провел бы немного времени, анализируя проблему впереди и помещая несколько стратегических операторов печати, чем выяснил бы, как оснастить Ваше приложение для профилирования, затем льются по гигантским отчетам, где каждая исполняемая строка кода синхронизирована.

1
ответ дан 10 December 2019 в 02:55
поделиться

Для запросов базы данных у Вас есть два небольшие проблемы. Кэш: кэш данных и кэш оператора.

При выполнении запроса однажды оператор проанализирован, подготовлен, связан и выполнен. Данные выбираются из файлов в кэш.

При выполнении запроса во второй раз кэш используется, и производительность часто очень, намного лучше.

Который является "реальным" показателем производительности? Сначала один или второй? Некоторые люди говорят, что "худший случай" является вещественным числом, и мы должны оптимизировать это. Другие говорят "типичный случай" и выполняют запрос дважды, игнорируя первый. Другие говорят "среднее число" и выполнение в 30 раз, насчитывая их всех. Другой говорить "типичное среднее число", выполнение этот 31 раз и составляет в среднем последние 30.

Я предполагаю, что "последние 30 из 31" являются самым значимым показателем производительности DB. Не потейте вещи, которыми Вы не можете управлять (синтаксический анализ, подготовить, связать), времена. Потеют материал, которым можно управлять - структуры данных, загрузка ввода-вывода, индексы, и т.д.

3
ответ дан 10 December 2019 в 02:55
поделиться

Я использую этот метод при случае и нахожу, что это довольно точно. Проблема состоит в том, что в крупных приложениях с довольно значительной суммой файлов регистрации событий отладки, это может быть боль для поиска журналов для этой информации. Таким образом, я использую внешние инструменты (я программирую в Java, прежде всего, и использую JProbe), которые позволяют мне видеть среднее число и общее время для моих методов, сколько времени проведено исключительно конкретным методом (в противоположность совокупному времени, проведенному методом и любым методом, который это называет), а также память и выделения ресурса.

Эти инструменты могут помочь Вам в измерении уровня целых приложений, и если Вы делаете существенное количество разработки в области, где производительность важна, можно хотеть исследовать доступные инструменты и изучить, как использовать тот.

2
ответ дан 10 December 2019 в 02:55
поделиться

Если бы Вы работаете с.NET, то я рекомендовал бы проверить класс Секундомера. Времена, которые Вы возвращаете от этого, будут намного более точными, чем эквивалентное демонстрационное использование DateTime.

Я также рекомендовал бы проверить Профилировщика МУРАВЬЕВ для сценариев, в которых производительность исключительно важна.

1
ответ дан 10 December 2019 в 02:55
поделиться

Я использую этот метод, и я думаю, что это очень точно.

0
ответ дан 10 December 2019 в 02:55
поделиться

Это - инвестирование достойное рассмотрения в хорошего коммерческого профилировщика, особенно если Вы когда-нибудь ожидаете должными быть делать это во второй раз.

Тот я использую, JProfiler, работы в мире Java и могу присоединить к уже-запущенному-приложению, таким образом, никакой специальный инструментарий не требуется (по крайней мере, с более свежим JVMs).

Это очень быстро создает отсортированный список горячих точек в Вашем коде, показывая, какие методы Ваш код проводит большую часть своего времени внутри. Это фильтрует довольно разумно по умолчанию и позволяет Вам настраивать фильтрацию далее при необходимости, означая, что можно проигнорировать деталь сторонних библиотек при выбирании тех методов, которые берут все время.

Кроме того, Вы надеваете много других полезных отчетов, что делает Ваш код. Это заплатило за стоимость лицензии во время, которое я сэкономил в первый, когда я использовал его; я не должен был добавить в большом количестве регистрирующихся операторов и создать механизм к anayse вывод: разработчики профилировщика уже сделали все это для меня.

Я не связан с ej-технологиями всегда кроме того, чтобы быть очень счастливым клиентом.

1
ответ дан 10 December 2019 в 02:55
поделиться

Я думаю, что у Вас есть хороший подход. Я рекомендую произвести "машину дружественные" записи в файле (файлах) журнала так, чтобы можно было проанализировать их более легко. Что-то как CSV или другой - разграниченные записи, которые последовательно структурируются.

0
ответ дан 10 December 2019 в 02:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: