Кому нужен этот промт и как он работает?
Этот промт предназначен для разработчиков и специалистов по искусственному интеллекту, которым нужно улучшить производительность Python-приложений, особенно связанных с AI-системами. Он помогает выявить узкие места в коде и предлагает конкретные техники оптимизации с примерами. Промт решает задачи повышения скорости выполнения, снижения потребления памяти и упрощения поддержки кода.
Работа промта основана на том, что вы выступаете в роли эксперта по оптимизации кода. Он просит предоставить пошаговые рекомендации, использовать лучшие практики и сравнить код до и после оптимизации. Благодаря этому можно понять, как именно улучшения влияют на эффективность программы.
Готовый к использованию промт
1 |
Ваша задача - помочь Morty оптимизировать Python-код для их AI-системы. Представьте, что вы эксперт в оптимизации кода. Предоставьте детальные шаги, лучшие практики и техники оптимизации с примерами кода. Рассмотрите такие аспекты, как временная сложность, использование памяти и другие ключевые моменты. Приведите примеры до и после оптимизации с объяснениями, чтобы иллюстрировать улучшения. Например, оптимизация рекурсивных функций с помощью мемоизации для повышения производительности. |
Как использовать промт и на что обратить внимание
Рекомендуется использовать этот промт, когда нужно улучшить Python-скрипты, которые медленно работают или потребляют много ресурсов. Промт хорошо подходит для образовательных целей, чтобы понять принципы оптимизации кода.
- Перед запуском укажите контекст кода или вставьте ключевые части, которые нужно улучшить.
- Обратите внимание, что слишком большой объем кода может усложнить обработку, лучше ограничиться фрагментами.
- Промт не гарантирует идеальный результат для всех ситуаций — иногда нужен ручной анализ или тестирование.
- Рекомендуется проверять предложенные улучшения на тестах производительности и корректности.
Примеры использования
Первый пример решает задачу уменьшения времени выполнения рекурсивной функции подсчёта чисел Фибоначчи за счёт мемоизации.
1 |
Ваша задача - помочь Morty оптимизировать Python-код для их AI-системы. Представьте, что вы эксперт в оптимизации кода. Предоставьте детальные шаги, лучшие практики и техники оптимизации с примерами кода. Рассмотрите такие аспекты, как временная сложность, использование памяти и другие ключевые моменты. Приведите примеры до и после оптимизации с объяснениями, чтобы иллюстрировать улучшения. Например, оптимизация рекурсивных функций с помощью мемоизации для повышения производительности. Вот код для оптимизации: <code>def fib(n): if n <= 1: return n return fib(n-1) + fib(n-2) |
Второй пример демонстрирует, как улучшить использование памяти при работе с большими списками, заменив списки на генераторы там, где это возможно.
1 |
Ваша задача - помочь Morty оптимизировать Python-код для их AI-системы. Представьте, что вы эксперт в оптимизации кода. Предоставьте детальные шаги, лучшие практики и техники оптимизации с примерами кода. Рассмотрите такие аспекты, как временная сложность, использование памяти и другие ключевые моменты. Приведите примеры до и после оптимизации с объяснениями, чтобы иллюстрировать улучшения. Например, оптимизация рекурсивных функций с помощью мемоизации для повышения производительности. Вот код для оптимизации: <code>result = [x**2 for x in range(1000000)] |
Пример вывода нейросети
В результате применения промта нейросеть может выдать подробное руководство и примеры улучшения Python-кода. Например:
✅ Для оптимизации функции подсчёта чисел Фибоначчи можно применять мемоизацию с помощью декоратора
@lru_cache
из модуляfunctools
. Это значительно уменьшит временную сложность с экспоненциальной до линейной. До оптимизации функция рекурсивная и повторно вычисляет одни и те же значения, после — использует кеш и выполняется гораздо быстрее.До:
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
После:from functools import lru_cache
@lru_cache(maxsize=None)
def fib(n):
if n <= 1:
return n
return fib(n-1) + fib(n-2)
Временная сложность уменьшилась, потребление памяти увеличилось незначительно из-за кеша.Аналогично, для оптимизации использования памяти при работе с большими списками лучше заменить списковые включения на генераторы. Это позволяет обрабатывать элементы по одному, не сохраняя весь список в памяти.
До:
result = [x**2 for x in range(1000000)]
После:result = (x**2 for x in range(1000000))
Это снижение использования оперативной памяти при большом объеме данных.
Итог: зачем использовать этот промт?
Использование данного промта позволяет быстро получить качественные рекомендации по оптимизации Python-кода для AI-систем. Благодаря четким шагам и наглядным примерам он экономит время на изучение и поиск лучших методов повышения производительности и снижения потребления ресурсов.
Main benefit: эффективное и наглядное улучшение Python-кода с экспертными советами и практическими примерами