PerfBench: Can Agents Resolve Real-World Performance Bugs?
2509.24091v1
cs.SE, cs.AI, cs.PF
2025-10-01
Авторы:
Spandan Garg, Roshanak Zilouchian Moghaddam
Резюме на русском
## Контекст
Performance bugs — это проблемы в программном обеспечении, вызывающие ненужный увеличение затрат ресурсов, не приводящие к ошибкам в функциональной части. Они трудно выявить и исправить, так как не вызывают функциональных сбоев, но неэффективно используют ресурсы. Данные проблемы значительно влияют на производительность программ, но часто не получают должного внимания из-за нехитрости их выявления и устранения.
Появление современных агентов в сфере программного обеспечения дало возможность автоматизировать обнаружение и исправление багов. Однако существующие бенчмарки ориентированы на функциональную корректность, не учитывая проблемы производительности. Необходимо создать бенчмарк, который бы позволил проверить способности агентов решать проблемы производительности.
## Метод
Мы предлагаем PerfBench — новый бенчмарк, состоящий из 81 реальных проблем производительности, извлечённых из GitHub-репозиториев на .NET. Отличительной чертой PerfBench является то, что он использует новую оценочную систему, при которой агенты могут создавать свои собственные бенчмарки производительности. Результаты этих бенчмарков сравниваются с результатами, полученными с исправлениями, предложенными разработчиками. Каждая задача в PerfBench подтверждена экспертами, чтобы гарантировать её реальность и актуальность.
В нашем бенчмарке используется новая методология, позволяющая лучше оценивать способности агентов к решению проблем производительности. Это позволяет создавать более точные оценки их показателей.
## Результаты
Мы провели эксперименты с использованием PerfBench и сравнили результаты работы двух агентов: базового OpenHands и модифицированного OpenHands-Perf-Agent. Базовый агент показал низкую производительность, достигнув только 3% успеха. Модифицированный агент OpenHands-Perf-Agent, использующий производительность-ориентированные инструменты и инструкции, повысил процент успешных решений до 20%.
Наши результаты показали, что агенты, имеющие доступ к конкретным инструментам и инструкциям, могут значительно повысить свою эффективность в решении проблем производительности. Однако существуют еще значительные возможности для улучшения.
## Значимость
PerfBench может применяться в разработке инструментов для автоматизации обнаружения и исправления проблем производительности. Он предоставляет значительные преимущества перед существующими бенчмарками, поскольку ориентирован на реальные проблемы производительности. Мы показали, что агенты, обученные на нашем бенчмарке, могут значительно повысить производительность системы, что в будущем может привести к революции в области ав
Abstract
Performance bugs are inefficiencies in software that waste computational
resources without causing functional failures, making them particularly
challenging to detect and fix. While recent advances in Software Engineering
agents have shown promise in automated bug fixing, existing benchmarks
primarily focus on functional correctness and fail to evaluate agents'
abilities to identify and resolve non-functional issues like performance bugs.
We introduce PerfBench, a benchmark comprising 81 real-world performance
bug-fixing tasks from popular .NET repositories on GitHub. Unlike existing
benchmarks that rely on pre-existing test suites, PerfBench features a novel
evaluation harness that allows agents to generate their own performance
benchmarks and validates fixes by comparing execution metrics collected for
developer fix and agent fix. Each task in PerfBench is derived from actual
developer fixes linked to performance-related issues, which are then verified
by human experts, ensuring real-world relevance. Our evaluation reveals that
current state-of-the-art coding agents struggle with performance optimization
tasks, with baseline OpenHands agent achieving only a ~3% success rate on our
benchmark. We develop OpenHands-Perf-Agent, which incorporates
performance-aware tooling and instructions and achieves a ~20% success rate on
the benchmark. We show that by ensuring the agent has proper instructions to
benchmark its changes and tooling for benchmark output processing, we can
improve the agent performance significantly, but room for improvement still
remains. PerfBench provides a challenging test set for furthering the
capabilities of agents in fixing performance issues.
Ссылки и действия
Дополнительные ресурсы: