Что лучший способ состоит в том, чтобы получить самый полезный вывод от oprofile?

Для быстрого наблюдения дублирующихся строк, можно выполнить единственный простой запрос

Сюда, я запрашиваю таблицу и перечисляю все дублирующиеся строки с тем же user_id, market_place и sku:

select user_id, market_place,sku, count(id)as totals from sku_analytics group by user_id, market_place,sku having count(id)>1;

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

Первая двойная проверка, если правильные записи будут удалены. Здесь я выбираю запись среди дубликатов, которые будут удалены (уникальным идентификатором).

select a.user_id, a.market_place,a.sku from sku_analytics a inner join sku_analytics b where a.id< b.id and a.user_id= b.user_id and a.market_place= b.market_place and a.sku = b.sku;

Тогда я выполняю запрос на удаление для удаления простофиль:

delete a from sku_analytics a inner join sku_analytics b where a.id< b.id and a.user_id= b.user_id and a.market_place= b.market_place and a.sku = b.sku;

Резервное копирование, Двойная проверка, проверьте, проверьте, что резервное копирование тогда выполняется.

9
задан vehomzzz 3 September 2009 в 01:46
поделиться

2 ответа

Посмотрите на KCachegrind - это инструмент визуализации данных профиля.

KCachegrind визуализирует файлы данных, созданные профилировщиком Callgrind . Но с скриптами преобразования , KCachegrind может визуализировать вывод других профилировщиков, таких как OProfile .

Когда вы устанавливаете KCachegrind с помощью диспетчера пакетов (yum, apt -get и т. д.) вы получите инструмент под названием op2calltree , который преобразует вывод Oprofile в формат KCachegrind.

5
ответ дан 3 November 2019 в 01:02
поделиться

gprof2dot - самый замечательный инструмент визуализации данных профиля.

opcontrol --shutdown
opcontrol --callgraph=7
opcontrol --image=<abs/path/to/your/execuable>
opcontrol --start

... time passes ...

opcontrol --dump
opreport -c > profile_info.txt
gprof2dot.py -f oprofile --strip profile_info.txt | dot -Tsvg > profile_graph.svg
inkscape profile_graph.svg

Опция gprof2dot --skew очень полезна при углублении в код проблемы.

Помните, что вы не можете установить callgraph, если вы вручную установили счетчик событий на низкое число. По умолчанию при использовании опции --callgraph минимальный счетчик в 15 раз больше, чем тот, что указан в --list-events


Редактировать: пример скриншота: gprof2dot.py example output

Разрешение уменьшено, чтобы не раскрывать конфиденциальные данные, но вы поняли идею.

6
ответ дан 3 November 2019 в 01:02
поделиться
Другие вопросы по тегам:

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