Команда ученых из Университета Массачусетса в Амхерсте под руководством Эмери Бергера недавно представила призовой профайлер Python под названием Scalene . Программы, написанные на Python, известны своей медленной работой – они могут быть медленнее на 60 000 раз по сравнению с кодом на других языках программирования. Scalene направлен на эффективное определение медленных участков в Python, что позволяет разработчикам оптимизировать свой код для повышения производительности.
“Python стал невероятно популярным в эпоху науки о данных и машинного обучения из-за своей дружелюбности для пользователя”, говорит Бергер, профессор компьютерных наук в Manning College of Information and Computer Sciences. Однако он также отметил: “Python безумно неэффективен”.
Для борьбы с неэффективностью Python разработчики могут использовать инструменты, называемые “профайлерами”. Существующие профайлеры, как правило, не особо помогают программистам на Python. Они просто указывают, что определенный участок кода работает медленно, оставляя разработчика один на один с проблемой.
Scalene, созданный командой Бергера, является первым профайлером, который не только точно определяет неэффективные участки в коде на Python, но и использует искусственный интеллект для предложения способов улучшения кода.
“Scalene сначала выясняет, где ваша программа тратит больше всего времени”, говорит Бергер. Профайлер сосредоточивается на трех ключевых областях: CPU, GPU и использовании памяти.
После идентификации проблемных мест Scalene использует ИИ для предложения оптимизации конкретных строк или блоков кода. “Это панель управления с рекомендациями”, отмечает Бергер.
Scalene уже активно используется и был загружен более 750 000 раз с момента его публикации на GitHub. Работа по этому проекту была представлена на ежегодной конференции USENIX, где она была удостоена премии за лучшую статью.