В 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.
- Запуск 10 тысяч задач.
- Запуск 100 тысяч задач.
- Запуск миллиона задач. Высокое потребление памяти в Go при похождении теста объясняется лишним использованием ключевого слова "defer", приводящим к выделению дополнительной памяти.
- Похожий прошлогодний тест с запуском миллиона задач, проведённый автором Spark Cassandra Connector и одним из разработчиков распределённой СУБД DataStax Enterprise (на базе Apache Cassandra).
Источник: https://www.opennet.ru/opennews/art.shtml?num=62314
(opennet.ru, мини-новости)