- context switching समय: Async Task 0.2µs vs Kernel Thread 1.7µs
→ अगर switching I/O की वजह से होती है, तो यह समय का अंतर समान हो जाता है (दोनों 1.7µs)
→ अगर thread version को केवल single core तक सीमित कर दिया जाए, तो async का फ़ायदा भी खत्म हो जाता है (लगभग समान)
-
नया task बनाना: async task ~0.3µs vs kernel thread 17µs
-
memory उपयोग: async task कुछ सौ bytes vs kernel thread 20KiB (9.5KiB user, 10KiB kernel)
→ यह लगभग कुछ भी काम न करने वाले task के आधार पर है; वास्तविक काम होने पर और अधिक की आवश्यकता होगी
- 2.5 लाख async tasks आसानी से बनाए जा सकते हैं, लेकिन 4-core/32GiB laptop पर 80,000 threads अधिकतम सीमा थी
1 टिप्पणियां
सिर्फ यह कहने के बजाय कि async प्रदर्शन/दक्षता के लिहाज़ से बहुत बेहतर है, यह benchmark इस समझ के साथ किया गया कि इसकी अंदरूनी कार्यप्रणाली को भी जानकर बात करनी चाहिए.
असल में async development में bugs भी ज़्यादा हो सकते हैं, और यह ज़्यादा कठिन भी हो सकता है, इसलिए सावधानी की ज़रूरत है.