Как измерить уровень в C++ (MFC) приложение?

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

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

ref.orderByChild('timestamp').startAt(Date.now()).on('child_added', 
function(snapshot) {
  console.log('new record', snap.key());
});

Что касается удаления элемента, вы можете использовать событие child_removed. Вот пример из документации Firebase

commentsRef.on('child_removed', function(data) {
  deleteComment(postElement, data.key);
});

5
задан rec 30 September 2008 в 07:20
поделиться

10 ответов

Я настоятельно рекомендую AQTime, если Вы остаетесь на платформе Windows. Это идет с загрузкой профилировщиков, включая статический анализ кода, и работает с большинством важных компиляторов Windows и систем, включая Visual C++.NET, Delphi, Borland C++, Intel C ++ и даже gcc. И это интегрируется в Visual Studio, но может также использоваться автономное.Мне очень нравится.

4
ответ дан 13 December 2019 в 05:44
поделиться

Если Вы (все еще) используете Visual C++ 6.0, я предлагаю использовать встроенного профилировщика. Для более поздних версий Вы могли попробовать Аналитический Выпуск Сообщества Работы Compuware DevPartner.

2
ответ дан 13 December 2019 в 05:44
поделиться

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

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

1
ответ дан 13 December 2019 в 05:44
поделиться

Для Windows, выезд Xperf, который поставлется свободный с Windows SDK. Это использует выбранный профиль, имеет некоторый полезный UI, и не требует инструментария. Довольно полезный для того, чтобы разыскать проблемы производительности. Можно ответить на вопросы как:

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

2
ответ дан 13 December 2019 в 05:44
поделиться

Инструменты (как истинное время от DevPartner), которые позволяют Вам видеть хит, значат исходные строки, которым позволяют Вы быстро найти алгоритмы, которые имеют плохо 'Большой O' сложность. Все еще необходимо проанализировать алгоритм, чтобы определить, как уменьшить сложность.

1
ответ дан 13 December 2019 в 05:44
поделиться

Intel Thread Checker через анализатор производительности Vtune - Проверка это изображение для представления, я использую большинство, которое говорит мне, которого функция съедает большую часть моего времени.

alt text

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

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

Испытательная загрузка здесь - https://registrationcenter.intel.com/RegCenter/AutoGen.aspx? ProductID=907&AccountID =&ProgramID =&RequestDt =&rm=EVAL&lang =

PS: Я также играл с Рациональным Рациональным, но по некоторым причинам я не взял много к нему. Я подозреваю Рациональный, могло бы быть более дорогим, чем Intel также.

1
ответ дан 13 December 2019 в 05:44
поделиться

К вашему сведению Некоторые версии Visual Studio только идут с неоптимизирующим компилятором. Для одного из моих моих приложений MFC, если я компилирую его с MINGW/MSYS (gcc компилятор) с-o3 затем, это работает о 5-10x с такой скоростью, как моя компиляция выпуска с Visual Studio.

Например, у меня есть openstreetmap xml компилятор, и требуется приблизительно 3 минуты (gcc скомпилированная версия) для обработки XML-файла на 2.7 ГБ. Моя компиляция Visual Studio того же кода занимает приблизительно 18 минут для выполнения.

0
ответ дан 13 December 2019 в 05:44
поделиться

Я второй AQTime, имея и AQTime и Compuwares DevPartner, для большинства случаев. Так как причина будет этим, AQTime представит любой исполняемый файл, который имеет допустимый файл PDB, тогда как TrueTime требует, чтобы Вы сделали оснащенную сборку. Это значительно убыстряется и упрощает для данного случая профилирование. DevPartner является также вполне немного более дорогим, если это - проблема. То, где DevPartner добивается признания, с BoundsChecker, который я все еще уровень как лучший инструмент для ловли утечек и перезаписей, чем профилировщик выполнения AQTimes. TrueTime может быть немного более точным, чем AQTime, но я никогда не находил, что это проблема.

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

1
ответ дан 13 December 2019 в 05:44
поделиться

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

0
ответ дан 13 December 2019 в 05:44
поделиться

Некоторые версии pf Visual Studio 2005 (и возможно 2008) на самом деле идут с довольно хорошим профилировщиком производительности.
если у Вас есть он, это должно быть доступно в соответствии с меню инструментов
или можно искать способ открыть окно "performance explorer" для запуска новой сессии производительности.
Ссылка на MSDN

0
ответ дан 13 December 2019 в 05:44
поделиться
Другие вопросы по тегам:

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