Rust Async 와 Linux 쓰레드 컨텍스트 스위칭 시간 및 메모리 사용량 비교
(github.com)- 컨텍스트 스위칭 시간 : Async Task 0.2µs vs Kernel Thread 1.7µs
ㅤ→ 스위칭이 I/O때문에 일어나면 이 시간 차이는 같아짐 (둘다 1.7µs)
ㅤ→ 쓰레드 버전을 싱글코어만 쓰게하면 비동기의 이점도 사라짐(거의 비슷해짐)
- 새 태스크 생성 : 비동기 태스크 ~0.3µs vs 커널쓰레드 17µs
- 메모리 사용 : 비동기 태스크 몇백 바이트 vs 커널쓰레드 20KiB(9.5KiB 유저, 10KiB 커널)
ㅤ→ 거의 아무일도 하지 않는 태스크 기준이며, 실제 동작한다면 더 많이 필요
- 25만개의 비동기 태스크는 쉽게 생성 가능하지만, 4코어/32GiB 노트북에서는 8만개의 쓰레드가 최대치