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/)