The OpenNET Project / Index page

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

Bloomberg открыл код memray, инструмента профилирования памяти для Python

21.04.2022 08:28

Компания Bloomberg открыла исходные тексты memray, инструментария для профилирования памяти в приложениях на языке Python. Программа отслеживает операции выделения памяти в Python и предлагает наглядный интерфейс для анализа и оптимизации потребления памяти различными участками кода, а также подключаемыми модулями, написанными на C/C++. Отчёты могут формироваться как в интерактивной форме, так и генерироваться в формате HTML. В состав входит CLI-интерфейс для управления профилированием и библиотека, которую можно использовать для отслеживания операций с памятью в сторонних проектах. Код опубликован под лицензией Apache 2.0. Работа поддерживается только на платформе Linux.

Основные возможности:

  • Области применения: выявление причин большого потребления памяти в приложениях, поиск утечек памяти и определение кода, выполняющего слишком много операций выделения памяти.
  • Отслеживание всех вызовов функций в привязке к общему потреблению памяти, потреблению внутри функции и числу операций выделения памяти. Возможность точной оценки стека вызовов.
  • Обработка обращений к библиотекам на C/C++ и учёт потребления памяти в нативных модулях. Поддержка анализа проектов, использующих numpy и pandas.
  • Минимальные накладные расходы и незначительное влияние на производительность анализируемого приложения. Возможность отключения отслеживания нативного кода для повышения производительности.
  • Наличие большого числа отчётов об использовании памяти, включая наглядные иерархические и ступенчатые графики (flame graph).
  • Возможность работы с потоками и анализа памяти в разрезе отдельных потоков. Поддерживаются как потоки Python, так и нативные потоки, такие как C++ threads, применяемые в модулях на C/C++.
  • Возможность интеграции с pytest и предоставление аннотаций pytest, определяющих рамки потребления памяти, при выходе за которые в процессе выполнения тестов будут формироваться предупреждения.


  1. Главная ссылка к новости (https://news.ycombinator.com/i...)
  2. OpenNews: Компания Bloomberg открыла код распределённой СУБД Comdb2
  3. OpenNews: Компания Bloomberg представила открытый оптимизирующий компилятор BuckleScript
  4. OpenNews: Facebook представил Pysa, статический анализатор для языка Python
  5. OpenNews: Представлен Perfkit, интерфейс для профилирования и мониторинга приложений
  6. OpenNews: Релиз Sysprof 1.2.0, системы профилирования производительности для Linux
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/57056-memray
Ключевые слова: memray, python, profile, debug
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (77) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:31, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +10 +/
    Профилировать память в питоне довольно больно. Хороший, годный опенсорс.
     
     
  • 2.8, Аноним (8), 09:56, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    да вроде нормально, кажется что основные плюшки тут это учет памяти библиотек и красивый интерфейс
     
  • 2.25, Аноним (25), 11:09, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Блумберг, питон... Что из этого более ненужно?
     
     
  • 3.31, Ан (??), 11:25, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +15 +/
    Ты.
     
  • 2.34, Аноним (34), 11:44, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    в проприетарных ide типа пайшарма такого функционала нет?
     
  • 2.49, Z (??), 12:57, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > Программировать в питоне довольно больно.

    Фиксанул, не благодари.

     
     
  • 3.58, Аноним (-), 15:43, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Тоже с 1С перекатился на BottleRuby?
     

  • 1.3, Аноним (3), 08:50, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Красота то какая!
     
  • 1.4, Аноним (4), 09:03, 21/04/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –4 +/
     
  • 1.5, Аноним (5), 09:08, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Сначала пишут на неподходящем для этого языке большие приложения, потом пишут профилировщики.
    Большие приложения не сразу становятся большими. Это на заметку тем, кто думает написать "прототип" на питоне, а потом его переписать.
    Нисколько питона ни для чего не нужно!
     
     
  • 2.6, ПерлухаБратуха (?), 09:50, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Сначала пишут на неподходящем для этого языке большие приложения, потом пишут профилировщики.
    > Большие приложения не сразу становятся большими. Это на заметку тем, кто думает
    > написать "прототип" на питоне, а потом его переписать.
    > Нисколько питона ни для чего не нужно!

    Согласен. Но на каком ЯП предлагаете разрабатывать, к примеру. Конкретно, желательно.

     
     
  • 3.10, Аноним (10), 10:07, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Для обработки финансовых данных? Джава, плюсы.
     
     
  • 4.33, ананим.orig (?), 11:43, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > финансовых

    Вы ведь в курсе что в мире происходит?

    Зыж
    Вот казалось бы — где жаба и где убыль населения >1'000'000 в РФ.

     
     
  • 5.75, Neon (??), 19:21, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Последних ежиков доедаем.))) Сарказм выкл. Что за маразм с жабой и убылью населения ? Опять либерастия головного мозга.
     
  • 4.36, Аноним (34), 11:45, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    на R вроде ещё что-то такое пишут
     
  • 3.14, YetAnotherOnanym (ok), 10:19, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    На подходящем.
    Вычислительно-тяжёлые, требующие скорости - на чистых сях или плюсах, сервера - на эрланге или жабе, а логи раз в сутки можно прошерстить на питоне или перле. Для какого-то экзотического случая - тоже свой специфический язык может понадобиться. Например, когда-то мне пришлось освоить TCL, чтобы через Expect (котрый от NIST'а) опрашивать железяку по telnet.
    Да, сюрпрайз, программисту (и даже просто сисадмину) надо знать несколько языков.
     
     
  • 4.16, Вобла (?), 10:29, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    А на расте ничего не надо писать?
     
     
  • 5.26, Аноним (25), 11:11, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > на расте ничего не надо писать

    Да.

     
  • 5.27, YetAnotherOnanym (ok), 11:12, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Не знаю, раст не щупал.
     
  • 5.28, PnD (??), 11:13, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Вы не в тренде. На расте надо *переписывать*.

    * Кроме шуток, с ослабевающим интересом наблюдаю за приключениями ржавчины.
    Задумывался как конкурент плюсам (ПМСМ), но похоже что забыли спроектировать. А сразу кинулись кодить.
    Как результат, проблемы с линковкой с сишным кодом, а сложность синтаксиса стремится к плюсовому по мере развития.
    Вместо конкурента крестам вышел ещё один интересный ЯП. Возможно, что-то написанное на rust таки доведут до ума ("на hackell же довели" в качестве "слабого доказательства"). Но и только.

     
     
  • 6.42, Аноним (10), 12:08, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Раст конкурент плюсам в том смысле, что на нем нетривиальные проблемы, всплывающие у плюсовиков в рантайме, всплывут уже при компиляции. В целом он должен заменить си - потому что нет оверхеда в рантайме на работу с памятью, но при этом вариантов стрельнуть в ногу гораздо меньше.
    И как бы никто не заставляет на нем писать. Нужны вам эти возможности - пишете, не нужны - дро⁣чи⁣тесь с плюсами дальше. Вон, люди на питоне пишут, даже не стесняются.
     
     
  • 7.63, Аноним (25), 19:31, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > всплывут уже при компиляции ... нет оверхеда в рантайме на работу с памятью

    А вот однажды растаманы завалили FF в рантайме путём перепутывания оператора сравнения при проверке вхождения индекса в массив...

     
  • 7.69, Брат Анон (ok), 07:51, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Всё описанные вами проблемы в Си -- были решены в Обороне ещё 30 лет назад. И без всяких разрывов шаблонов и нарушением обратной совместимости (привет питону) -- язык плавно развивался УПРОЩАЯСЬ. Последняя редакция от 2017 года. Оберон-07. Всё за вас уже давно СПРОЕКТИРОВАНО и собраны ВСЁ ГРАБЛИ за последние 60 лет.
    Не надо выдумывать велосипед.
     
     
  • 8.72, Аноним (72), 09:31, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Риторика как у растофанатиков ... текст свёрнут, показать
     
     
  • 9.74, Брат Анон (ok), 10:31, 24/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Извините, но Вирт к Расту никакого отношения не имеет А ему, на минуточку-- уже... текст свёрнут, показать
     
  • 8.77, Neon (??), 19:24, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Одна только беда у Оберона - паскалеподобный синтаксис Гадость для плюсовиков... текст свёрнут, показать
     
     
  • 9.83, Брат Анон (ok), 15:08, 06/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Плюсовики -- сами по себе гадость На дух не переношу синтаксис крестов ... текст свёрнут, показать
     
  • 6.76, Neon (??), 19:23, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ни разу не конкурент плюсам. От одного синтаксиса ржавчины блевать хочется. Вот уж, действительно, альтернативно одаренные проектировали.
     
  • 4.19, Ivan (??), 10:47, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Сервера щас на go все свежие пишут
     
     
  • 5.29, YetAnotherOnanym (ok), 11:19, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Да на здоровье. Если язык даёт возможность обслуживать миллионы соединений без закидывания левой ноги за правое ухо - пусть пишут.
     
  • 4.20, Брат Анон (ok), 10:49, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Угу. Сначала пишут на плюсах, а потом удивляются десять лет подряд парадоксу дефекта массы нейтрино. Пока через десять лет этот софт не будет переписан на Обероне))
     
     
  • 5.30, YetAnotherOnanym (ok), 11:20, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Эээ... "Парадокс дефекта массы нейтрино" - это что?
     
     
  • 6.35, Аноним (35), 11:44, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Сферический конь в вакууме. У нейтрино нет массы покоя.
     
     
  • 7.48, YetAnotherOnanym (ok), 12:52, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > У нейтрино нет массы покоя.

    Насколько мне известно, это всё ещё не установлено на 100%.

     
     
  • 8.71, Аноним (25), 09:27, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Это как пытаться найти массу покоя фотона Ни его, ни нейтрино ещё никто не ос... текст свёрнут, показать
     
  • 7.73, sergey (??), 09:37, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Наоборот. Нейтринные осцилляции говорят о том, что у нейтрино обязана быть ненулевая масса.
     
  • 6.53, Брат Анон (ok), 13:54, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +4 +/
    > Эээ... "Парадокс дефекта массы нейтрино" - это что?

    Гугли как (увы, уже покойный) Ткачёв Фёдор Михайлович (дфн, ведущий научный сотрудник всеросийского центра ядерных исследований) решил проблему, которую решали американцы (примерно 12-15 человек), итальянцы (примерно 6 человек), Ткачёв (сам + аспирант) на протяжении 10 лет что за фигня творится с массой нейтрино.

    Ткачёв -- +5 в карму (Оберон).
    Итальянцы -- в печали (кресты).
    Американцы -- немного в шоке и не понимают как так получилось (разные кресты).

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

     
     
  • 7.65, YetAnotherOnanym (ok), 20:23, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А точно "Михайлович"? А то Гугол и Яндекс находят Фёдора Васильевича и Игоря Ивановичяа из Троицка.
     
     
  • 8.67, Брат Анон (ok), 07:36, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Ой, очепятка Васильевич, конечно ... текст свёрнут, показать
     
  • 7.80, Neon (??), 19:30, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Аспирант Ткачева - залогинитесь.))) А то анонимно самого себя рекламировать как то не очень.)))
    Что то котоламповая история с Обероном прямо анекдот про поручика, одного шагающего в ногу и роту напоминает.)))
     
     
  • 8.87, Брат Анон (ok), 15:15, 06/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, я к нему никакого отношения не имею Кроме как немного связан с атомом вес... текст свёрнут, показать
     
  • 7.82, Neon (??), 20:30, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Как то к в первые в мире...отношусь с подозрением. Сам в своё время был аспирантом одного крупного научного деятеля и потом 20 лет крутился в науке. Профессор, академик, знаменитость, широко известная в узких научных кругах, во всем мире примерно 10-15 человек занималось этой научной областью. Из которых половина его непосредственные родственники: жена, дочка, зять и т.д., остальные знакомые, друзья. Такой международный междусобойчик среди своих. Гнали наукообразную хрень с 90% вранья, друг друга цитируя и подтверждая. Благо проверить мало кто мог из-за специфики и трудоёмкости вычислений. Главное, что на правду похоже.) Так всю жизнь этот академик и прожил в славе, занимаясь самопиаром и эксплуатацией всех своих сотрудников. Даже работами студентов не брезговал, их присваивал. Главное, вал, количество научных работ. Теперь, спустя годы, понимаешь, что вся научная группа занималась по сути ерундой и имитацией бурной научной деятельности. И что главное, таких крупных научных деятелей повидал немало. И среди наших и среди иностранцев. Большинство. Это то и понятно, что профессоров и академиков море. А вот тот же Ньютон был один. А все профессора, академики хотят вкусно кушать. Так что терзают меня большие сомнения.)
     
     
  • 8.86, Брат Анон (ok), 15:14, 06/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Чтобы вас не терзали смутные сомнения -- просто сходите к нему на сайт, почитайт... текст свёрнут, показать
     
  • 5.37, Аноним (35), 11:46, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    И много софта на Обероне переписали, кроме того для 1-го блока РоАЭС?
     
     
  • 6.68, Брат Анон (ok), 07:38, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > И много софта на Обероне переписали, кроме того для 1-го блока РоАЭС?

    Система символьных вычислений. Ткачёв с нуля в одно лицо. Ну не надо лениться. Погугли, ссылок на написанный софт с более чем серьёзным применением вполне достаточно.

     
     
  • 7.78, Neon (??), 19:26, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ага. Широко известные в узких научных кругах. Слишком узких.)))
     
     
  • 8.84, Брат Анон (ok), 15:09, 06/05/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вам шашечки или ехать Если ехать не собираетесь -- зачем тогда вы вообще начина... текст свёрнут, показать
     
  • 7.79, Neon (??), 19:27, 05/05/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ткачев сам себя здесь рекламирует ?)))Правильно, сам себя не расхвалишь, так никто не похвалит.)))
     
     
  • 8.85, Брат Анон (ok), 15:10, 06/05/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Ткачёв очень уважаемый человек Вы ему не ровня даже близко Он умер год назад ... текст свёрнут, показать
     
  • 3.47, YetAnotherOnanym (ok), 12:49, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Дополню, что если логи раз в сутки можно прошерстить на питоне или перле, то для какой-то более сложной аналитики уже лучше брать что-то вроде R, например. А если у вас задача, для которой хорошо подходит Тарантул, то вам придётся выучить Луа.
     
  • 2.7, Аноним (7), 09:53, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >Большие приложения не сразу становятся большими.

    Верно. Для любой сишной прикладной либы обязательно нужпы питоньи биндинги.

     
     
  • 3.11, Аноним (10), 10:08, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Кому нужны? Начинающим программистам, которые умеют только на питоне и пишут на нем всё?
     
     
  • 4.23, Вобла (?), 10:58, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Например, тем кто не первый год занимается программированием и знает, что детали реализации (в данном случае в виде арифметики указателей и прочих прелестей) можно и зачастую даже нужно скрывать.
     
     
  • 5.39, Аноним (10), 11:59, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Нужно скрывать, в классах, да. Только при чем здесь биндинги к библиотекам на другом языке?
    Посмотрим правде в глаза - на питоне пишут не потому что язык хороший, а потому что на других не умеют, не могут, не хотят. Так как язык тормозной даже по меркам скриптовых и более или менее тяжелые вычисления на нем невозможны, использование биндингов к сишным либам - горькая необходимость. Надо называть вещи своими именами.
     
     
  • 6.46, Вобла (?), 12:49, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    >на питоне пишут потому что на других не умеют, не могут, не хотят
    >язык тормозной
    >использование биндингов к сишным либам - горькая необходимость

    Допустим, всё так, но как из этого следует, что биндинги не нужны и питон тоже не нужен?
    Есть люди, которые «на других не умеют, не могут, не хотят» — они пишут на питоне. Кто умеет, может или хочет — пишет на чём-то другом.

     
  • 2.9, Вобла (?), 10:03, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Приятно видеть, что некоторые вещи совсем не меняются, проходят через года в одном и том же виде, и сейчас, как и сто лет назад, отсутствие в классе учителя не может пройти незамеченным.
     
  • 2.13, Ivan (??), 10:17, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +1 +/
    О, гуру, расскажи, на чем конкретно надо писать большие приложения?
     
     
  • 3.15, YetAnotherOnanym (ok), 10:22, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Разные большие приложения - на разном. Размышляй над этим и обретёшь просветление.
     
  • 3.24, Массоны Рептилоиды (?), 11:02, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Javascript конечно же
     
     
  • 4.38, Аноним (35), 11:51, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Теперь уже модно на Rust.
     
     
  • 5.70, Аноним (25), 09:25, 22/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Как определить, какой язык изучать, чтобы не потратить зря время? ... Посмотрите, не попадает ли язык в категорию "модных".
     
  • 2.22, Аноним (22), 10:54, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    > Сначала пишут на неподходящем для этого языке большие приложения, потом пишут профилировщики.

    Эк ты изящно сишников-плюсовиков, жабистов, эрланговцев и даже хаскеллистов приложил ...


     
  • 2.32, Бывалый смузихлёб (?), 11:30, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Прямо описАл историю airbnb с тоннами заморочек к синтаксису и подходами к разработке и конечной разработке приложения на реакт-натив.
    Приём, сама по себе штука весьма неплохая, но со всеми их подходами, проект превращается в лютейшую помойку.
    Посоны в итоге настолько зазнались и перемудрили со всем этим, что не нашли варианта лучше как тупо с него свалить и забить на все их же подходы и модули, которые продолжительное время всерьёз рекомендовали другим как "стандарт разработки крупного проекта"™ и которые некоторые до сих пор пытаются применять, всерьёз удивляясь что их проекты стремительно превращаются в кучу гомна
     
  • 2.41, Аноним (41), 12:03, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Типичное плохо не делай, а делай хорошо.  

    Но сейчас твоя картина мира изменится. Представь что маленьким приложениям тоже бывает нужен профилировщик! А заливатель железом это ты.  

     
     
  • 3.43, Аноним (10), 12:18, 21/04/2022 [^] [^^] [^^^] [ответить]  
  • +/
    Профилировщик нужен не приложениям, а программистам, под⁣елие которых жрет память как не в себя, после чего виснет и падает, причем не на локалхосте, а в продакшене.
    Да, делать надо хорошо. Плохо само получится.
     

  • 1.12, Иваня (?), 10:15, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот молодцы, красавчики, спасибо большое Bloomberg!
     
  • 1.44, ИмяХ (?), 12:30, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    >>выявление причин большого потребления памяти

    А что там выявлять? Главная причина - использование питона.

     
  • 1.45, Аноним (45), 12:31, 21/04/2022 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно на чем у них терминал рисует, ncurses?
     
  • 1.50, Z (??), 12:58, 21/04/2022 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • +1 +/
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



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

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