- Дарт: с ростом до 10 потоков производительность улучшается, тк задействуются системные потоки. Далее до 1000 изолятов вообще без разницы, если еще больше - начинает деградировать
- Джава и Раст: потоки стартуют медленно ок 5мс каждый поток, поэтому нужен пул.
- Java: 8-12s (started in 5-6s)
- Rust: 38s (started in 5s)
- Dart: 7s (isolates started in 60-110ms)
- JAVA: 2s (200ms start) OpenJDK java 17
- RUST: 30s (4.3s start)
- Dart: 6.5s (100ms start)
- JAVA: same
- RUST: 21s (4s start)
- Dart: 4s (30ms start)
Let's try to improve Rust version by minimizing heap allocations, see https://www.youtube.com/watch?v=nO-BFKyWYgE
- Rust Optimized 110ms/2.6s @ Intel/rust1.67.1; 65ms/1.5s @ M1/rust1.67.1
- Rust Tokio Optimized 80m/2.3s @ Intel/rust1.67.1; 19ms/1.4s @ M1/rust1.67.1
- Java 2.6s/12s @ Intel/openjdk17; 250ms/1.6s @ M1/openjdk19
- Dart 30ms/7s @ Intel; 25ms/4s @ M1/dart2.19
- All versions fully load the CPU