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.

Ссылки и действия