Инструменты оценки производительности на основе BPF дают беспрецедентную возможность анализа систем и приложений. Вы сможете улучшить производительность, устранить проблемы в коде, повысить безопасность и сократить расходы. Книга «BPF: профессиональная оценка производительности» — ваш незаменимый гайд по применению этих инструментов. Брендан Грегг — эксперт и пионер проекта BPF — представляет более 150 готовых инструментов анализа и отладки, рекомендации по их применению, а также пошаговые инструкции по разработке ваших собственных инструментов. Вы узнаете, как анализировать процессоры, память, дисковый ввод/вывод, файловую систему, сети, языки программирования, приложения, контейнеры, гипервизоры, безопасность и ядро. Вы сможете выработать глубокое понимание того, как улучшить буквально любую Linux-систему или приложение.
Иногда программисты говорят, что они «стряпают патч» («cook a patch»), а не «реализуют» (implement). Я начал увлекаться программированием еще в школе. Чтобы получить хороший код, программист должен выбрать лучшие «ингредиенты». Разные языки программирования предлагают множество разных строительных блоков — «ингредиентов», но когда дело доходит до программирования ядра Linux, то кроме самого ядра у вас ничего нет.
В ядре Linux уже был похожий механизм, известный как BPF (Berkeley Packet Filter — пакетный фильтр Беркли), поддерживавший минимальный набор команд, которые можно использовать для фильтрации пакетов перед передачей их приложениям, таким как tcpdump. Надеюсь, что эта книга станет вашей настольной «кулинарной книгой», в которой известный шеф-повар учит, как использовать BPF на Linux-кухне.
Эта книга рассказывает об инструментах на основе BPF, которые применяются в основном для анализа и оценки производительности, но их можно использовать и в других областях: для поиска и устранения неполадок в ПО, для анализа безопасности и многого другого. Самое сложное в изучении BPF — не как писать код: любой интерфейс вы можете изучить примерно за день. Намного сложнее понять, что именно делать: какие из многих тысяч событий анализировать? Эта книга поможет найти ответ на этот вопрос, предоставив всю необходимую информацию об анализе производительности на множестве примеров анализа различных программных и аппаратных целей с помощью инструментов оценки производительности BPF на промышленных серверах Netflix.
Существует множество языков программирования, компиляторов и сред выполнения для них. У каждого языка есть свои особенности, по которым можно отследить запуск программ, написанных на нем. Глава 12 объясняет такие различия и помогает реализовать трассировку программ, написанных на любом языке. Начнем с описания способов реализации разных языков программирования, а затем исследуем возможности трассировки, используя в качестве примеров несколько языков: язык C будет представлять компилируемые языки, Java — языки с JIT-компиляцией, а язык командной оболочки bash — интерпретируемые языки. На примере каждого из них я расскажу, как искать имена функций (символы), аргументы функций, а также как получать и исследовать трассировки стека. В конце главы я также затрону вопросы трассировки программ на других языках: javascript (Node.js), C++ и Golang. Неважно, с каким языком вы работаете. Прочтя эту главу, вы научитесь его инструментировать, а также узнаете проблемы и их решения, которые встречались в других языках.
Разместите ссылку на эту страницу в социальных сетях. Так о ней узнают тысячи человек:
Facebook
Twitter
Мой мир
Вконтакте
Одноклассники
Нашли ошибку? Сообщите администрации сайта: Выберите один из разделов меню и, если необходимо, напишите комментарий
За ложную информацию бан на месяц
Разместите, пожалуйста, ссылку на эту страницу на своём веб-сайте:
Код для вставки на сайт или в блог: Код для вставки в форум (BBCode): Прямая ссылка на эту публикацию:
Языки программирования и методы трансляции — В книге рассматриваются вопросы сравнительного анализа языков программирования и конструирование компиляторов. Первая часть книги содержит обзор языков высокого уровня и связанных с их эволюцией технологий структурного, модульного и объектно-ориентированного программирования.
Книга рассказывает о том, как разрабатывать уникальные языки программирования, чтобы сократить время и стоимость создания приложений для новых или специализированных областей применения вычислительной техники. Вы начнете с реализации интерфейса компилятора для вашего языка, включая лексический и синтаксический анализатор, а к концу чтения сможете р ...
В книге рассматриваются вопросы сравнительного анализа языков программирования и конструирование компиляторов. В первой части издания подробно обсуждаются языки Ява и Си#. Большое внимание уделяется Оберону — одному из самых совершенных языков программирования. В этой книге впервые публикуется его спецификация на русском языке. Также приводятся рез ...
Данное руководство позволит вам освоить обширный перечень инструментов с открытым исходным кодом, доступных для GNU/Linux. Автор книги, Джон Фуско, подробно и доступно описывает наиболее полезные из них, используя наглядные краткие примеры, которые легко видоизменять и использовать на практике.
Данный материал НЕ НАРУШАЕТ авторские права никаких физических или юридических лиц. Если это не так - свяжитесь с администрацией сайта. Материал будет немедленно удален. Электронная версия этой публикации предоставляется только в ознакомительных целях. Для дальнейшего её использования Вам необходимо будет приобрести бумажный (электронный, аудио) вариант у правообладателей.