Оптимізація використання пам'яті за допомогою ШІ

Просунуте AI‑асистоване програмування для розробників

Thalia Barrera

AI Engineering Curriculum Manager, DataCamp

Від часової до просторової складності

 

Продуктивність — це не лише швидкість:

  • Використання пам'яті
  • Масштабованість
  • Зростання даних з часом

Час проти простору

Просунуте AI‑асистоване програмування для розробників

Тестування на масштабі

Порівняння масштабів бази даних

 

  • ✔ Малий набір даних: добрий для навчання
  • 📈 Проблеми з пам'яттю: виникають на масштабі
  • 💾 Реальна БД: ближча до продакшену
Просунуте AI‑асистоване програмування для розробників

Попередження про зростання пам'яті

memory-grouth.png

Просунуте AI‑асистоване програмування для розробників
Просунуте AI‑асистоване програмування для розробників
Просунуте AI‑асистоване програмування для розробників

ШІ інтерпретує сліди пам'яті

 

інтерпретація tracemalloc

 

Висновок ШІ:

  • Великий обсяг пам'яті утримується
  • Повторні проміжні структури
  • Під час агрегації
Просунуте AI‑асистоване програмування для розробників

Первинну причину визначено

Первинна причина

Просунуте AI‑асистоване програмування для розробників

ШІ пропонує виправлення

 

🤖 Запит про вузьке місце пам'яті:

З огляду на виявлене вузьке місце, запропонуйте рефакторинг для зменшення пікового використання пам'яті. Розгляньте стримінг, повторне використання даних або альтернативні подання.

 

Запропоновані стратегії:

  • Зменшити проміжні виділення
  • Повторно використовувати буфери
  • Додати кешування
Просунуте AI‑асистоване програмування для розробників

Компроміси кешування

Баланс компромісів кешу

 

Обережно з кешем:

  • ✔ Може покращити продуктивність
  • ❌ Також може збільшити пам'ять
Просунуте AI‑асистоване програмування для розробників

Компроміси кешування

 

🤖 Запит на порівняння компромісів:

З огляду на це навантаження та шаблон доступу, чи зменшить стратегія кешування загальне використання пам'яті, чи зробить гірше? Поясніть компроміси.

ai-cache-suggestion.png

Просунуте AI‑асистоване програмування для розробників

Реалізація ШІ

ai-code-fixes.png

 

Як завжди:

  • Ретельно перевіряйте
  • Валідуйте перед прийняттям змін
Просунуте AI‑асистоване програмування для розробників

Перевірка результатів

 

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

memory-benchmark.png

Результати:

  • Пікова пам'ять суттєво падає
  • Час виконання стабільний
  • ✅ Оптимізацію підтверджено
Просунуте AI‑асистоване програмування для розробників

Запити для бенчмаркування

🤖 Запит для бенчмаркування:

Ви — експерт із продуктивності Python. Нижче два знімки tracemalloc — до та після зміни коду.

  • До: {before_snapshot}
  • Після: {after_snapshot}

Порівняйте пікову пам'ять і кількість виділень. Обґрунтуйте висновки цифрами. Якщо стало краще — поясніть чому. Якщо ні — що виправити.

 

Ефективні запити для бенчмарку:

  • Наведіть до/після
  • Вкажіть важливі метрики
  • Просіть висновки з доказами

 

✔ Робить оптимізацію повторюваною та системною

Просунуте AI‑асистоване програмування для розробників

Попрактикуймося!

Просунуте AI‑асистоване програмування для розробників

Preparing Video For Download...