Навыки python-performance-optimization
📦

python-performance-optimization

Безопасно

Оптимизация производительности и профилирование кода на Python

Также доступно от: ActiveInferenceInstitute,wshobson

Медленный код на Python тратит ресурсы впустую и разочаровывает пользователей. Этот навык предоставляет систематические методы профилирования и оптимизации для выявления узких мест и улучшения производительности.

Поддерживает: Claude Codex Code(CC)
🥉 72 Бронза
1

Скачать ZIP навыка

2

Загрузить в Claude

Перейдите в Settings → Capabilities → Skills → Upload skill

3

Включите и начните использовать

Протестировать

Использование «python-performance-optimization». Профилирование функции, обрабатывающей большой список

Ожидаемый результат:

Отчёт о времени показывает, что process_data() потребовала 2,3 с (85% от общего времени), при этом 90% потрачено на вложенные циклы. Рекомендация: Заменить алгоритм O(n²) на поиск по словарю для производительности O(n).

Использование «python-performance-optimization». Анализ паттерна использования памяти

Ожидаемый результат:

Профиль памяти показывает выделение 500 МБ в словаре data_cache, который растёт без ограничений. Рекомендация: Реализовать LRU-кэш с параметром maxsize или использовать WeakValueDictionary для автоматической очистки.

Аудит безопасности

Безопасно
v1 • 2/24/2026

Static analysis flagged 68 patterns but all are false positives. The backtick detections are markdown code formatting, not shell execution. Network and URL findings are educational examples using test endpoints. SQLite references are documentation examples. System reconnaissance patterns are legitimate profiling tool demonstrations. This is a documentation-only skill with no executable code or security risks.

2
Просканировано файлов
908
Проанализировано строк
0
находки
1
Всего аудитов
Проблем безопасности не найдено
Проверено: claude

Оценка качества

38
Архитектура
100
Сопровождаемость
87
Контент
32
Сообщество
100
Безопасность
100
Соответствие спецификации

Что вы можете построить

Отладка медленных API-эндпоинтов

Профилирование веб-приложения для выявления медленных запросов к базе данных и оптимизации времени отклика.

Оптимизация конвейеров обработки данных

Анализ использования памяти и времени выполнения ETL-рабочих процессов для снижения потребления ресурсов.

Повышение эффективности алгоритмов

Профилирование вычислительного кода для выявления неэффективных паттернов и применения соответствующих оптимизаций.

Попробуйте эти промпты

Базовая настройка профилирования
Помогите мне профилировать эту функцию Python для выявления узких мест производительности. Вот мой код: [вставить код]. Покажите, как использовать cProfile для измерения времени выполнения и поиска медленных функций.
Исследование утечек памяти
Моё приложение на Python со временем использует всё больше памяти. Помогите использовать memory_profiler и tracemalloc для выявления утечек памяти в этом коде: [вставить код]. Объясните, что означает вывод.
Рекомендации по оптимизации
Я профилировал свой код и нашёл следующие узкие места: [вставить вывод профилирования]. Рекомендуйте конкретные методы оптимизации и покажите примеры кода до/после для каждого предложения.
Расширенное профилирование production
Проведите меня через настройку py-spy для профилирования работающего production-сервиса Python без его остановки. Объясните, как создавать flame graphs и интерпретировать результаты для поиска горячих путей.

Лучшие практики

  • Всегда профилируйте перед оптимизацией, чтобы выявить реальные узкие места, а не предполагаемые
  • Используйте подходящие структуры данных: словари для поиска, множества для проверки принадлежности, генераторы для больших последовательностей
  • Кэшируйте дорогие вычисления с помощью functools.lru_cache и объединяйте I/O-операции в пакеты для снижения накладных расходов системных вызовов

Избегать

  • Оптимизация кода без данных профилирования приводит к потере усилий на не-узких местах
  • Конкатенация строк в циклах с помощью оператора + вместо join() вызывает квадратичную временную сложность
  • Загрузка целых файлов или наборов данных в память, когда достаточно обработки на основе итераторов

Часто задаваемые вопросы

Какой профилировщик следует использовать первым?
Начните с cProfile для общего профилирования CPU. Он встроен в Python и показывает, какие функции потребляют больше всего времени. Используйте line_profiler для детального построчного анализа конкретных горячих функций.
Как профилировать production-код без влияния на производительность?
Используйте py-spy — сэмплирующий профилировщик, который прикрепляется к работающим процессам с минимальными накладными расходами. Он может создавать flame graphs и не требует изменений кода или перезапусков.
Почему мой оптимизированный код медленнее оригинального?
Распространённые причины: преждевременная оптимизация холодных путей, добавленная сложность, вызывающая промахи кэша, или микрооптимизации, мешающие внутренним оптимизациям Python. Всегда делайте бенчмарки изменений.
Когда следует использовать multiprocessing вместо threading?
Используйте multiprocessing для задач, ограниченных CPU, чтобы обойти GIL и задействовать несколько ядер. Используйте threading или asyncio для задач, ограниченных I/O, где GIL освобождается во время I/O-операций.
Как снизить использование памяти в приложении на Python?
Используйте генераторы вместо списков для больших последовательностей, реализуйте __slots__ в классах со множеством экземпляров, избегайте хранения ненужных ссылок и используйте слабые ссылки для кэшей.
Всегда ли NumPy быстрее чистого Python?
NumPy превосходно справляется с векторизованными численными операциями на больших массивах благодаря реализации на C. Для небольших наборов данных или нечисловых задач чистый Python может быть проще и так же быстр.

Сведения для разработчиков

Автор

sickn33

Лицензия

MIT

Ссылка

main

Структура файлов