पर फ़्रेड/fwrite के साथ फ़ाइल की प्रतिलिपि बनाने का प्रदर्शन मैं कोड के एक टुकड़े के सामने हूं, जो एक फ़ाइल को यूएसबी डिवाइस पर कॉपी करता है। के बाद भाग महत्वपूर्ण है:यूएसबी
while((bytesRead = fread(buf, 1, 16*1024, m_hSource)) && !bAbort) {
// write to target
long bytesWritten = fwrite(buf, 1, bytesRead, m_hTarget);
m_lBytesCopied += bytesWritten;
बात है, ग्राहक ने कहा, यह सामान्य पीसी < को सुंदर की तुलना में धीमी है -> यूएसबी गति। मैंने इसे कोड नहीं किया, इसलिए यह मेरा काम है, अनुकूलित करने के लिए।
तो मैं सोच रहा था, अगर यह पूरी फ़ाइल को पहले पढ़ने के लिए बेहतर तरीका है और फिर फ़ाइल को एक चरण में लिखें। लेकिन मुझे नहीं पता कि यह कैसे त्रुटि-प्रवण होगा। कोड प्रत्येक कॉपीस्टेप के बाद भी जांच करता है यदि सभी बाइट्स सही ढंग से लिखे गए हैं, जिससे प्रक्रिया धीमा हो सकती है।
मैं सी ++ & हार्डवेयर गुरु नहीं हूं, इसलिए मैं आपसे पूछ रहा हूं, मैं चीजों को कैसे गति दे सकता हूं और प्रतिलिपि को सफल रख सकता हूं।
बाधा के लिए कहीं और देखें। आपको बफर आकार बदलने में थोड़ा सुधार हो सकता है, लेकिन आपकी समस्या शायद कुछ और है। –
ठीक है, यह एकमात्र ऐसा हिस्सा है जो इस विशेष समस्या के साथ कुछ कर रहा है। तो यह केवल कोड हो सकता है। –
चेक को हटाएं कि बाइट सही तरीके से लिखे गए थे। यदि आप पहले लिखने पर भरोसा नहीं कर सकते हैं, तो आप सत्यापन के लिए उपयोग किए गए निम्नलिखित पढ़ने पर भरोसा नहीं कर सकते हैं। (मुझे लगता है कि आप बाइट्स की जांच कर रहे हैं त्रुटियों के लिए लिखित।) –