From 1d6f4ab0c5cae14ce1951446d186355edfa71540 Mon Sep 17 00:00:00 2001 From: cheatsnake <72691412+cheatsnake@users.noreply.github.com> Date: Mon, 6 Mar 2023 20:31:54 +0300 Subject: [PATCH] update topic about Profiling --- README.md | 24 ++++++++++++++++-------- README_ENG.md | 11 ++++++++++- 2 files changed, 26 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 404c331..f430be9 100644 --- a/README.md +++ b/README.md @@ -2466,19 +2466,27 @@ - ### Профилирование - [Профилирование](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)) кода это попытка найти узкие места в вашем коде. Профилирование позволяет проанализировать ваш код и найти его самые долго выполняющиеся участки. Инструмент, используемый для анализа работы, называют профилировщиком или профайлером. + [Профилирование](https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%84%D0%B8%D0%BB%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_(%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%82%D0%B8%D0%BA%D0%B0)) – это анализ производительности программы, который позволяет обнаружить узкие места в которых происходит наибольшая нагрузка на процессор и/или память. + - Для чего это нужно? + > Информация полученая после профилирования может оказаться очень полезной для оптимизации производительности. Также, профилирование может быть полезно при отладке программы для поиска багов и ошибок. + - Когда этим нужно заниматься? + > По мере потребности – когда есть явные проблемы или подозрения. + - Какие конкретные инструменты для этого есть? + > Для Python используется: [cProfile](https://docs.python.org/3/library/profile.html), [line_profiler](https://github.com/pyutils/line_profiler). + > Для Node.js: [встроенный Profiler](https://nodejs.org/en/docs/guides/simple-profiling/), [Clinic.js](https://github.com/clinicjs/node-clinic), [модуль Trace events](https://nodejs.org/api/tracing.html). + > Для Go: [пакет runtime/pprof](https://go.dev/blog/pprof), [утилита trace](https://go.dev/doc/diagnostics#tracing).
🔗 Ссылки на материалы 1. 📄 [**Профилирование кода к Python**](https://python-scripts.com/cprofile-code-profiling) -1. 📄 [**Профилировщики Python**](https://digitology.tech/docs/python_3/library/profile.html) -1. 📺 [**Утечки памяти в Node.js и JavaScript, сборка мусора и профилирование** – YouTube](https://youtu.be/0oZa64SB2wM) -1. 📺 [**Профилирование JS: увидеть самое важное и не утонуть в море чисел** – YouTube](https://youtu.be/rKtWxCYBFP4) -1. 📄 [**Простое профилирование Node.js приложений**](https://nodejs.org/ru/docs/guides/simple-profiling/) -1. 📄 [**Профилирование и оптимизация программ на Go**](https://habr.com/ru/company/badoo/blog/301990/) -1. 📄 [**Профилирование в Go**](https://golangforall.com/ru/post/profiling.html) -1. 📄 [**Kotlin performance on Android**](https://habr.com/ru/company/oleg-bunin/blog/420143/) +2. 📄 [**Профилировщики Python**](https://digitology.tech/docs/python_3/library/profile.html) +3. 📺 [**Утечки памяти в Node.js и JavaScript, сборка мусора и профилирование** – YouTube](https://youtu.be/0oZa64SB2wM) +4. 📺 [**Профилирование JS: увидеть самое важное и не утонуть в море чисел** – YouTube](https://youtu.be/rKtWxCYBFP4) +5. 📄 [**Простое профилирование Node.js приложений**](https://nodejs.org/ru/docs/guides/simple-profiling/) +6. 📄 [**Профилирование и оптимизация программ на Go**](https://habr.com/ru/company/badoo/blog/301990/) +7. 📄 [**Профилирование в Go**](https://golangforall.com/ru/post/profiling.html) +8. 📄 [**Kotlin performance on Android**](https://habr.com/ru/company/oleg-bunin/blog/420143/)
Содержание ⬆️
diff --git a/README_ENG.md b/README_ENG.md index 752b1c1..9c2f116 100644 --- a/README_ENG.md +++ b/README_ENG.md @@ -2332,7 +2332,16 @@ Testing is the process of assessing that all parts of the program behave as expe - ### Profiling - [Profiling]() is an attempt to find bottlenecks in your code. Profiling allows you to analyze your code and find its longest running sections. The tool used to analyze performance is called a profiler. + [Profiling]() is a program performance analysis, which reveals bottlenecks where the highest CPU and/or memory load occurs. + + - What is it for? + > The information obtained after profiling can be very useful for performance optimization. Profiling can also be useful for debugging the program to find bugs and errors. + - When should this be done? + > As needed - when there are obvious problems or suspicions. + - What specific tools are there for this? + > For Python, use: [cProfile](https://docs.python.org/3/library/profile.html), [line_profiler](https://github.com/pyutils/line_profiler). + > For Node.js: [built-in Profiler](https://nodejs.org/en/docs/guides/simple-profiling/), [Clinic.js](https://github.com/clinicjs/node-clinic), [Trace events module](https://nodejs.org/api/tracing.html). + > For Go: [runtime/pprof](https://go.dev/blog/pprof), [trace utility](https://go.dev/doc/diagnostics#tracing).
🔗 References