Promt-Hub
Главная / Программирование и IT / Охотник за утечками памяти

Охотник за утечками памяти

Описание промпта
Инструмент для выявления и устранения утечек памяти в коде на различных языках программирования.
Что делает этот промпт
  • Автоматизирует поиск утечек памяти, анализируя код и профили, и предоставляет исправления с чек-листами профилактики.
Преимущества
  • Экономит время на отладку, предотвращает падение приложений из-за нехватки памяти, улучшает стабильность систем.
Для кого подходит
  • Разработчики, DevOps-инженеры, специалисты по производительности, работающие с JS, Python, Java, Go, C/C++.
Инструкция по использованию промпта
Вставь код или симптомы в поле ввода. При необходимости укажи язык и данные профилирования. Получи структурированный отчет с исправлениями.
Что нужно предоставить
Необходимо предоставить фрагмент кода, профиль памяти или описание симптомов утечки. Желательно указать язык программирования.
Что ожидать в результате
Детальный отчет с локализацией утечки, объяснением причины, исправленным кодом и рекомендациями по мониторингу.
Рекомендации
Используй для долгосрочно работающих процессов (серверы, демоны). Проверяй рекомендации с помощью реальных инструментов профилирования.
Ограничения
Не заменяет глубокий ручной аудит архитектуры. Может требовать настройки специфичных инструментов для сложных сред.
Переменные
CODE_OR_SYMPTOMS
CODE_OR_SYMPTOMS
Обязательная

Фрагмент кода или описание симптомов утечки памяти.

LANGUAGE
LANGUAGE
Необязательная

Язык программирования или среда выполнения.

PROFILE_DATA
PROFILE_DATA
Необязательная

Данные из инструментов профилирования памяти.

OBSERVED_SYMPTOMS
OBSERVED_SYMPTOMS
Необязательная

Описание наблюдаемых проблем (рост RSS, OOM и т.д.).

Промпт открыт для всех. Зарегистрируйтесь, чтобы копировать одним кликом, сохранять промпты, оценивать их и подписываться на авторов.
Текст промпта
ChatGPT / Claude / Llama Войти для копирования
Выступи в роли инженера по производительности с 12+ летним опытом в управлении памятью и поиске утечек. Твоя задача — проанализировать предоставленный код, профили памяти или симптомы, чтобы:
1. Выявить потенциальные утечки.
2. Объяснить механизм утечки.
3. Предложить конкретные исправления.
4. Рекомендовать стратегии мониторинга.

Входные данные:
```
{{CODE_OR_SYMPTOMS}}
```

Дополнительный контекст (если предоставлен):
- **Язык/Среда**: {{LANGUAGE}}
- **Профиль памяти**: {{PROFILE_DATA}}
- **Симптомы**: {{OBSERVED_SYMPTOMS}}

Процесс анализа:
1. **Идентификация паттернов**: Ищи незакрытые ресурсы, накопление слушателей событий, циклические ссылки, глобальные переменные, кэши без очистки, замыкания, захватывающие большие объекты, отсоединенные DOM-узлы (JS).
2. **Трассировка жизненного цикла**: Определи, где объекты создаются и должны быть освобождены, и где происходит фактическое освобождение.
3. **Анализ путей удержания**: Выяви прямые и косвенные ссылки, удерживающие объекты в памяти.
4. **Оценка воздействия**: Оцени скорость роста утечки и риск OOM (Out of Memory).

Формат вывода:
### Сводка утечки
[Одно предложение описания]

### Тип утечки
[Категория: Слушатель событий | Замыкание | Незакрытый ресурс | Кэш | Циклическая ссылка | Другое]

### Причина
[Подробное объяснение, почему память удерживается]

### Местоположение
```[language]
[Проблемный код с комментариями]
```

### Исправление
```[language]
[Исправленный код]
```

### Шаги проверки
1. [Как проверить исправление]
2. [Инструменты профилирования]
3. [Ожидаемое поведение]

### Чек-лист профилактики
- [ ] Практика предотвращения этого типа утечки
- [ ] Связанная лучшая практика
- [ ] Рекомендация по мониторингу

Ограничения:
- Учитывай среду выполнения (Node.js, браузер, JVM и т.д.).
- Рекомендуй конкретные инструменты профилирования.
- Не полагайся на то, что сборщик мусора справится со всем.
- Не игнорируй фреймворк-специфичные паттерны.

Специфика языков:
- **JS/Node**: Слушатели, замыкания, таймеры, WeakMap. Инструменты: Chrome DevTools, `heapdump`.
- **Python**: Циклические ссылки, `__del__`, C-расширения. Инструменты: `tracemalloc`, `objgraph`.
- **Java**: Статические коллекции, потоки, ThreadLocal. Инструменты: VisualVM, Eclipse MAT.
- **Go**: Утечки горутины, каналы. Инструменты: `pprof`, `runtime.ReadMemStats`.
- **C/C++**: malloc/free, RAII. Инструменты: Valgrind, AddressSanitizer.

Поделитесь в социальных сетях

Комментарии

Войдите, чтобы комментировать.

Комментариев пока нет.