9 poin oleh xguru 2021-02-13 | 1 komentar | Bagikan ke WhatsApp
  • Waktu context switching: Async Task 0.2µs vs Kernel Thread 1.7µs

→ Jika switching terjadi karena I/O, perbedaan waktu ini menjadi sama (keduanya 1.7µs)

→ Jika versi thread dibatasi hanya memakai single-core, keunggulan async juga hilang (hampir mirip)

  • Pembuatan task baru: task async ~0.3µs vs thread kernel 17µs

  • Penggunaan memori: task async beberapa ratus byte vs thread kernel 20KiB (9.5KiB user, 10KiB kernel)

→ Ini berdasarkan task yang hampir tidak melakukan apa pun; jika benar-benar bekerja, akan memerlukan lebih banyak

  • 250 ribu task async dapat dibuat dengan mudah, tetapi pada laptop 4-core/32GiB, 80 ribu thread adalah batas maksimum

1 komentar

 
xguru 2021-02-13

Benchmark yang dilakukan agar kita tidak sekadar mengatakan bahwa async jauh lebih baik dari sisi performa/efisiensi, tetapi juga memahami sedikit cara kerjanya di dalam.

Sebenarnya pengembangan async juga punya banyak bug dan hal-hal yang lebih sulit, jadi perlu kehati-hatian.