Оценка потребления памяти при одновременном запуске миллиона задач

Опубликованы результаты тестирования потребления памяти при выполнении кода, создающего миллион параллельно выполняемых сопрограмм. Тестирование проведено для типовой программы, реализованной на языках программирования Rust, C#, Go, Java, Python и JavaScript.

В Rust задачи создавались с использованием фреймворка Tokio и на базе библиотеки async_std, в C# — API List‹Task›(), JavaScript — async/await в Node.js, Python — asyncio, Go — goroutine, Java — сопрограммы. Используемые версии и конфигурация: Rust 1.82, .NET 9.0.100 с NativeAOT, Go 1.23.3, OpenJDK/GraalVM 23.0.1, NodeJS 23.2.0, Python 3.13.0.

Результаты:

  • Запуск одной задачи для оценки потребления памяти в runtime.

    CFD0C5CECEC5D4_1732887288.png

  • Запуск 10 тысяч задач.

    CFD0C5CECEC5D4_1732887391.png

  • Запуск 100 тысяч задач.

    CFD0C5CECEC5D4_1732887425.png

  • Запуск миллиона задач.

    CFD0C5CECEC5D4_1732887452.png

  • Похожий прошлогодний тест с запуском миллиона задач.

    CFD0C5CECEC5D4_1732888294.png



Источник: http://www.opennet.ru/opennews/art.shtml? num=62314

©  OpenNet