The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Представлен React, инструментарий для измерения времени выпо..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от opennews (ok) on 15-Май-14, 11:29 
Разработчики файловой системы  PohmelFS (http://www.ioremap.net/projects/pohmelfs) и распределённого хранилища Elliptics (http://www.ioremap.net/projects/elliptics/) представили (http://www.ioremap.net/node/972/)
инструментарий React (https://github.com/reverbrain/react) (Real-time Call Tree), предназначенный для отслеживания времени выполнения различных частей кода в проектах на языках C и C++. React предоставляет специальную библиотеку, позволяющую добавлять специальные метки в код и генерировать дерево выполнения блоков, выводимое в формате JSON и учитывающее время работы программы в каждом из блоков.


Для анализа накопленных данных поставляется скрипт для визуализации информации в форме графиков. Применение  React уже позволило значительно поднять эффективность организации работы с кэшем в проектах Elliptics и Eblob. При разработке библиотеки основное внимание уделено минимизации накладных расходов в процессе измерения и простоте использования. Код поставляется под лицензией LGPLv2.1.

<center><a href="http://reverbrain.com/wp-content/uploads/2014/05/trace.jpg&q... src="https://www.opennet.ru/opennews/pics_base/0_1400138065.jpg" style="border-style: solid; border-color: #e9ead6; border-width: 15px;max-width:100%;" title="" border=0></a></center>

URL: http://www.ioremap.net/node/972/
Новость: https://www.opennet.ru/opennews/art.shtml?num=39780

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по ответам | RSS]

1. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от A.Stahl (ok) on 15-Май-14, 11:29 
А разве valgrind этого не умеет?
Именно время никогда особо не интересовало, но скорее всего он должен это уметь.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Представлен React, инструментарий для измерения времени выпо..."  –3 +/
Сообщение от rob pike on 15-Май-14, 11:29 
Могучая вещь - комплекс неполноценности.
Как послали парня с его kevent-ом в LKML, так он с тех пор горы сворачивает.
Профайлер вот изобрел. Ну всё ж не программу для управления коллекциями фотографий, и то хорошо.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Nuzhny on 15-Май-14, 11:40 
Могучая вещь, конечно, но профайлер никто не изобретал. Читать внимательно: " You can think of it as a real-time callgrind with no overhead and user-defined call branches."
Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от Nuzhny on 15-Май-14, 11:41 
> А разве valgrind этого не умеет?
> Именно время никогда особо не интересовало, но скорее всего он должен это
> уметь.

callgrind умеет, но немного не то.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

5. "Представлен React, инструментарий для измерения времени выпо..."  –5 +/
Сообщение от rob pike on 15-Май-14, 11:50 
Ах, ну да, простите, Callgrind же у нас менеджер коллеций фотографий.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от ф on 15-Май-14, 11:53 
Если чуть внимательнее новость читать, то генерация идёт на основе _меток_ добавленных. В валгринде я меток не помню.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

7. "Представлен React, инструментарий для измерения времени выпо..."  –2 +/
Сообщение от rob pike on 15-Май-14, 11:54 
Запилите к этой штуке https://github.com/brendangregg/FlameGraph кто-нибудь, кстати.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от ф on 15-Май-14, 11:55 
> Могучая вещь, конечно, но профайлер никто не изобретал. Читать внимательно: " You
> can think of it as a real-time callgrind with no overhead
> and user-defined call branches."

Просто комментаторы как обычно говорят о том, чем не пользовались.

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Представлен React, инструментарий для измерения времени выпо..."  –3 +/
Сообщение от Аноним (??) on 15-Май-14, 11:55 
Pohmel? Да это название почище Pidora будет.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 12:00 
Это традиционные россиянские приколы.
GIN и VODKA - индексы в PostgreSQL, например.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 12:15 
Это точно. Они ничего кроме кислых щей и лаптей и не видали.
Ну может еще один глобальный счетчик вложенности, преаллоцированный буфер, указатель текущей в нем позиции, snprintf в местах меток да перловый скрипт из 15 строк.
А тут такие технологии двадцать второго века, дефайны вместо snprintf-а, масштаб инноваций-то сложно так вот сразу осознать.
Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

12. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от trdm (ok) on 15-Май-14, 12:26 
А я все жду когда в QtCreator вставят профайлер наподобие того, что есть в кодеблоке )
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от rob pike on 15-Май-14, 12:29 
И посылатель в statsd в отдельном треде, с регулируемым интервалом посылания накопленного.
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

14. "Представлен React, инструментарий для измерения времени выпо..."  +4 +/
Сообщение от Аноним (??) on 15-Май-14, 12:31 
> Могучая вещь - комплекс неполноценности.

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

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

15. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от A.Stahl (ok) on 15-Май-14, 12:32 
Ну да, т.е. валгринд ещё удобней:)
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

16. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 12:56 
Там есть опция --show у callgrind_annotate
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

17. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от _yurkis_ (ok) on 15-Май-14, 13:05 
И тем не менее... Вполне бывает нужно. Приведите пример АНАЛОГИЧНОГО инструмента, который лучше и я, вполне возможно, буду его пользовать. А пока посмотрю это или и дальше буду своим аналогичным костылем пользоваться.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

18. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 13:18 
Если серьезно, то основной плюс React-а (и самодельных костыликов) в том что (почти все) традиционные профайлеры рассматривают программу как набор функций - название Callgrind нам об этом ненавязчиво напоминает.
В современных же реалиях значение имеют скорее отдельные statements.

А совсем в идеале надо печатать трассу где рядом с каждым statement-ом будет стрелочка туда куда ожидал branch prediction в процессоре (хотя, кажется, этого даже интел не умеет рассказывать), с большим красным восклицательным знаком если следующая инструкция не оправдала его надежд, ну или хотя бы там где кэши L1-3 пришлось сбрасывать.

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

19. "Представлен React, инструментарий для измерения времени выпо..."  –3 +/
Сообщение от rob pike on 15-Май-14, 13:20 
Посоветуйте имя какого-нибудь неизвестного.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

20. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Аноним (??) on 15-Май-14, 13:46 
Было бы header-only - еще можно было бы о чем-то говорить.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от acid email on 15-Май-14, 16:08 
Привет! Изначально React действительно был header-only, но потом появилась необходимость поюзать его в C. Недавно я придумал, как сделать его header-only в С++, что-бы это осталось совместимым с С-шной версиеи. В ближайшее время запилю. Если интересно - спрашивайте.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

25. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Аноним (??) on 15-Май-14, 16:13 
вот подходящий ник для тебя: "пустоголовое трепло"
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

26. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от хрюкотающий зелюк on 15-Май-14, 16:14 
Я работал с разными профилировщиками... но именно такой инструмент мне был нужен!
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

27. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от acid email on 15-Май-14, 16:16 
> И посылатель в statsd в отдельном треде, с регулируемым интервалом посылания накопленного.

Это можно сделать уже сейчас.
Для этого необходимо создать свой aggregator, который будет посылать call_tree в statsd/"ваш любимый коллектор" при вызове мегода aggregate, и передать этот aggregator при создании контекста react-a в функцию react_activate.
После этого можно вызывать react_submit_progress для сабмита текущего состояние call_tree.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

28. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от Аркадий (??) on 15-Май-14, 16:18 
Да-да! Я тоже не знаю, как раньше жил без реакта!
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

30. "Представлен React, инструментарий для измерения времени..."  +/
Сообщение от arisu (ok) on 15-Май-14, 16:51 
> вот подходящий ник для тебя: "пустоголовое трепло"

у школьников подгорают анусы. упоительное зрелище.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

32. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Uri (??) on 15-Май-14, 17:22 
http://www.agner.org/optimize/#testp

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

Сбрасывай все в файл и визуализируй сколько хочешь, чем хочешь и как хочешь.

p.s. Я хуею, дорогая редакция, неужели у опеннета нету новостей, что приходится какой-то детский самокатик в новости выкатывать??

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

33. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от Аноним (??) on 15-Май-14, 17:39 
Похмель русскоговорящие разрабатывали?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

34. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от Аноним (??) on 15-Май-14, 17:47 
Use VTune, Luke.
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

35. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 18:20 
Что-то я не помню чтоб там в коде была реализация UDP-протокола statsd.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

36. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 18:25 
Зачем? Необходимость С-интерфейса очевидна и понятна с первой секунды для таких тулзов.
Какую функциональность добавляет С++ интерфейс?
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

37. "Представлен React, инструментарий для измерения времени..."  –1 +/
Сообщение от rob pike on 15-Май-14, 18:26 
На том стоим.
Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

40. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Аноним (??) on 15-Май-14, 18:27 
> Похмель русскоговорящие разрабатывали?

А что, есть сомнения?

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

41. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 18:29 
> Use VTune, Luke.

Не всегда нужно ездить за хлебом на самолете.
Да и VTune далеко не без недостатков.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

42. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 18:31 
Что-то мне подсказывает что со счетчиками perf справляется куда лучше.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

43. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Аноним (??) on 15-Май-14, 18:46 
Как раз с точностью до наоборот.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

44. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 18:57 
Какую функциональность добавляет С++ интерфейс?
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

45. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от rob pike on 15-Май-14, 19:37 
Cachegrind выглядит относительно неплохо, но http://valgrind.org/docs/manual/cg-manual.html (пункты 5.8.2 и 5.8.3)
Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

47. "Представлен React, инструментарий для измерения времени выпо..."  +1 +/
Сообщение от acid email on 15-Май-14, 21:26 
> http://www.agner.org/optimize/#testp
> Элементарно встраивается в любой код. Позволяет снимать не только время выполнения куска
> кода, но и такие (если, конечно, проц поддерживает) счетчики, как количество
> сделанных бренчей, количество неправильно предсказанных их же, количество выполненных
> микроопераций и т.д. и т.п.
> Сбрасывай все в файл и визуализируй сколько хочешь, чем хочешь и как
> хочешь.
> p.s. Я хуею, дорогая редакция, неужели у опеннета нету новостей, что приходится
> какой-то детский самокатик в новости выкатывать??

Отличная утилита! Я не сомневаюсь, что она великолепно справляется с задачей, которая перед ней ставится, а именно:
"Can measure clock cycles and performance monitor counters such as cache misses, branch mispredictions, resource stalls etc. in a small piece of code in C, C++ or assembly"

React предназначен для постоения Trace'а в большой системе, в которой мы считаем не количество операций увеличивания счётчика, etc, а количество сетевых запросов, запросов работы с диском, тяжелых вычислительных функций.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

48. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от acid email on 15-Май-14, 21:35 
> Что-то я не помню чтоб там в коде была реализация UDP-протокола statsd.

React это утилита для сбора статистики выполнения программы. Способы, которыми она сбрасывает статистику на диск, находятся вне её компетенции и могут быть любыми.
Если вы хотите использовать в качестве коллектора statsd, вам необходимо получить
во время исполнения программы call_tree, которое сгенерирует react, а затем воспользоваться
одним из многих клиентов для statsd, например https://github.com/talebook/statsd-client-cpp
что-бы отправить собранную react'ом статистику туда.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

49. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от acid email on 15-Май-14, 21:39 
> Как раз с точностью до наоборот.

Нормальный синтаксис, отсутствие необходимости таскать void*, возможность простого расширения, постоения своих аггрегаторов для любых систем сбора trace'ов.

На C нельзя реализовать очень удобную для мониторинга концепцию guard'а

Не надо реализовывать 5 одинаковых с точки зрения реализации функций
add_stat_int
add_stat_bool
add_stat_string
...

Главный аргумент: удобней пользоваться

Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

50. "Представлен React, инструментарий для измерения времени выпо..."  –1 +/
Сообщение от Аноним (??) on 15-Май-14, 23:59 
Превед танкистам! :)
Оно уж давно аносировано https://www.opennet.ru/opennews/art.shtml?num=15561
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

51. "Представлен React, инструментарий для измерения времени..."  +1 +/
Сообщение от Аноним (??) on 16-Май-14, 00:01 
На анусах? ;)
Ответить | Правка | ^ к родителю #37 | Наверх | Cообщить модератору

52. "Представлен React, инструментарий для измерения времени выпо..."  +/
Сообщение от Ури on 16-Май-14, 09:50 
Ок. Был невнимателен.
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору


Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру