मैं एक छोटा सा एप्लीकेशन लिख रहा हूं, जो एक एसडी कार्ड पर स्थिर दर पर जेपीईजी छवियां लिख रहा है। मैं एक EXT3 फाइल सिस्टम चुनता हूं, लेकिन एक ही व्यवहार एक EXT2 फाइल सिस्टम के साथ देखा गया था।एसडी कार्ड लिखने का प्रदर्शन
मेरे लेखन पाश इस तरह दिखता है:
get_image()
fwrite()
fsync()
या इस तरह:
get_image()
fopen()
fwrite()
fsync()
fclose()
मैं भी कुछ समय आंकड़े प्रदर्शित करते हैं, और मैं देख सकता हूँ मेरा कार्यक्रम कुछ समय कई सेकंड के लिए अवरुद्ध है। औसत दर अभी भी अच्छी है, क्योंकि अगर मैं आने वाली छवियों को एक फीफो में रखता हूं, तो मैं इस तरह के स्टाल के बाद थोड़े समय में कई छवियां लिखूंगा। क्या आपको पता है कि यह ओएस के साथ कोई समस्या है या यदि यह एसडी कार्ड से संबंधित है? मैं रीयलटाइम के करीब कैसे जा सकता हूं? मुझे मजबूत रीयलटाइम की आवश्यकता नहीं है, लेकिन कई सेकंड के लिए रुकने की स्वीकार्य नहीं है।
कुछ परिशुद्धता: हाँ प्रत्येक फ़ाइल के बाद fsync करना आवश्यक है, क्योंकि मैं चाहता हूं कि छवि डिस्क पर हो, न कि कुछ उपयोगकर्ता या कर्नेल बफर में। Fsyncing के बिना, मेरे पास काफी बेहतर है, लेकिन अभी भी अस्वीकार्य स्टाल। मुझे नहीं लगता कि यह एक बफर समस्या है, क्योंकि पहली बार 50 एमबाइट्स लिखे जाने के बाद होता है। और मैन पेज के अनुसार, fsync यह सुनिश्चित करने के लिए ठीक है कि कोई डेटा buffered नहीं है।
औसत लिखने की दर के बारे में प्रेसिजन: मैं उस कार्ड पर टिकाऊ हूं जो मैं उपयोग कर रहा हूं। अगर मैं fsync को पूरा करने के लिए प्रतीक्षा करते समय आने वाली छवि को ढेर करता हूं, तो इस स्टॉल के बाद लिखने की स्थानांतरण दर बढ़ेगी और मैं जल्दी से औसत दर पर वापस जाऊंगा। औसत स्थानांतरण दर लगभग 1.4 MBytes/s है।
systeme एक आधुनिक लैपटॉप शेयर Kee (2.6.24.19)
pleaes ध्यान दें JFFS और तरह तरह के CompactFlash के रूप में कुछ फ्लैश उपकरणों,, जो अपने ही पहनने लेवलिंग कर के लिए एक अच्छा विचार नहीं कर रहे हैं। – Hasturkun
क्या वे एक बुरा विचार हैं, या कॉम्पैक्ट फ्लैश पहनने के स्तर सिर्फ जेएफएफएस के लाभों को अस्वीकार करते हैं? यह एक ईमानदार सवाल है, मुझे कोई जानकारी नहीं है। मैं मानता हूं कि यह 'कच्चे' फ्लैश डिवाइस के लिए निश्चित रूप से बेहतर विकल्प है। –