C++ में stdin से पंक्तियाँ पढ़ना Python से धीमा क्यों है?
सभी को नमस्कार! मैं एक शुरुआती C++ डेवलपर हूँ, जो Python से आया हूँ, और मुझे एक अप्रत्याशित समस्या का सामना करना पड़ा। Python में मैं अक्सर ऐसी समस्याएँ हल करता था जहाँ मुझे standard input से बड़ी मात्रा में डेटा पढ़ना होता था (जैसे, 10 मिलियन पंक्तियाँ)। `sys.stdin.readline()` का उपयोग करने वाला Python कोड काफी तेज़ चलता था। लेकिन जब मैंने C++ में `std::getline` और `std::cin` का उपयोग करके समान कोड लिखने का प्रयास किया, तो प्रदर्शन कई गुना खराब था। मैंने एक सरल benchmark लिखा: stdin से सभी पंक्तियाँ पढ़ना और बस उनकी संख्या गिनना। यहाँ मेरे द्वारा उपयोग किया जा रहा C++ कोड है:
```cpp
#include
#include
int main() {
std::ios::sync_with_stdio(false);
std::cin.tie(nullptr);
std::string line;
int count = 0;
while (std::getline(std::cin, line)) {
++count;
}
std::cout << count << std::endl;
return 0;
}
```
stdio के साथ synchronization बंद करने के बावजूद (जो, जैसा मैंने पढ़ा, काम को तेज़ करना चाहिए), C++ प्रोग्राम अभी भी धीमा चलता है।