Оптимизация памяти с помощью ИИ

Продвинутое программирование с ИИ-ассистентами

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

От временной к пространственной сложности

 

Производительность — не только скорость:

  • Использование памяти
  • Масштабируемость
  • Рост данных со временем

От временной к пространственной сложности

Продвинутое программирование с ИИ-ассистентами

Тестирование при масштабировании

Сравнение масштабов базы данных

 

  • ✔ Малый датасет: полезен для обучения
  • 📈 Проблемы с памятью: проявляются при масштабировании
  • 💾 Реальная база данных: ближе к продакшену
Продвинутое программирование с ИИ-ассистентами

Предупреждение о росте памяти

Предупреждение о росте памяти

Продвинутое программирование с ИИ-ассистентами
Продвинутое программирование с ИИ-ассистентами
Продвинутое программирование с ИИ-ассистентами

ИИ интерпретирует трассировку памяти

 

Интерпретация tracemalloc

 

Вывод ИИ:

  • Большой объём удержанной памяти
  • Повторяющиеся промежуточные структуры
  • Во время операций агрегации
Продвинутое программирование с ИИ-ассистентами

Корневая причина определена

Корневая причина

Продвинутое программирование с ИИ-ассистентами

ИИ предлагает исправления

 

🤖 Запрос об узком месте памяти:

На основе выявленного узкого места памяти предложите стратегии рефакторинга для снижения пикового потребления памяти. Рассмотрите потоковую обработку, повторное использование данных или альтернативные представления.

 

Предложенные стратегии:

  • Сократить промежуточные выделения памяти
  • Повторно использовать буферы
  • Внедрить кэширование
Продвинутое программирование с ИИ-ассистентами

Компромиссы кэширования

Весы компромисса кэширования

 

Будьте осторожны с кэшированием:

  • ✔ Может улучшить производительность
  • ❌ Может также увеличить потребление памяти
Продвинутое программирование с ИИ-ассистентами

Компромиссы кэширования

 

🤖 Запрос о сравнении компромиссов:

Учитывая данную рабочую нагрузку и шаблон доступа, снизит ли стратегия кэширования общее потребление памяти или может ухудшить ситуацию? Объясните компромиссы.

Предложение ИИ по кэшированию

Продвинутое программирование с ИИ-ассистентами

Реализация с помощью ИИ

Исправления кода от ИИ

 

Как всегда:

  • Тщательно проверяйте
  • Валидируйте перед принятием изменений
Продвинутое программирование с ИИ-ассистентами

Результаты валидации

 

Запуск бенчмарка:

Бенчмарк памяти

Результаты:

  • Пиковое потребление памяти значительно снизилось
  • Время выполнения осталось стабильным
  • ✅ Оптимизация подтверждена
Продвинутое программирование с ИИ-ассистентами

Запросы для бенчмаркинга

🤖 Запрос для бенчмаркинга:

Вы — эксперт по производительности Python. Ниже представлены два снимка tracemalloc: до и после изменения кода.

  • До: {before_snapshot}
  • После: {after_snapshot}

Сравните пиковое потребление памяти и количество выделений. Обоснуйте выводы числами. Если изменение является улучшением, объясните почему. Если нет — предложите, что исправить.

 

Эффективные запросы для бенчмаркинга:

  • Предоставляйте данные до/после
  • Указывайте нужные метрики
  • Требуйте выводов на основе данных

 

✔ Делает оптимизацию воспроизводимой и систематической

Продвинутое программирование с ИИ-ассистентами

Lass uns üben!

Продвинутое программирование с ИИ-ассистентами

Preparing Video For Download...