में डिस्क से एक छवि लोड करने की गति बढ़ाएं मैं वर्तमान में एक ऐप पर काम कर रहा हूं जो उपयोगकर्ता को स्थानीय छवियों की एक श्रृंखला के माध्यम से (स्वचालित रूप से स्क्रॉल) करने की अनुमति देता है। आम तौर पर एक बार स्क्रीन पर पांच या छह होंगे।विंडोज़ फॉर्म (सी # .net) ऐप
इस समय बड़ी बाधा डिस्क से छवि डेटा की वास्तविक लोडिंग प्रतीत होती है। एक टाइमर थ्रेड छवियों को एक सेकंड के प्रत्येक 1/6 को अपडेट करने के लिए कॉल करता है और ऐप उस गति को बनाए रखने के लिए संघर्ष कर रहा है। प्रत्येक छवि लगभग 25 केबी है।
मैंने छवियों को आजमाने और प्रीलोड करने के लिए रोलिंग कैश बनाने की कोशिश की लेकिन यह भी खुद के साथ पकड़ा गया ताकि इतनी धीमी गति से धीमा हो गया।
टाइमर का हर धड़कन, मैं मानक
Image img = Image.FromFile("filename");
पद्धति का उपयोग करके छह छवि अगली छवि लोड हो रहा है प्लेसहोल्डर के माध्यम से पाशन रहा हूँ, लेकिन सोचा था कि किसी एक तेज़ तरीका डिस्क छवियों उतरना के बारे में पता हो सकता है।
छः सेटों में से प्रत्येक में 500 और 20,000 छवियों के बीच हैं, इसलिए शुरुआत में पूरी चीज़ को स्मृति में लोड करना बहुत बड़ा है।
अगर किसी के पास इन छवियों को खींचने के लिए तेज़ तरीके से सुझाव हैं, तो इसकी सराहना की जाएगी।
आवेदन प्रवाह के कुछ और विवरण जोड़ने के लिए संपादित करें।
उपयोगकर्ता हिट 'चलाएं' बटन:
ठीक है, यह क्या हो रहा है है। टाइमर थ्रेड 1/6 सेकंड टाइमआउट के साथ शुरू होता है।
टाइमर कॉलबैक:
Update image index (_index++)
for each viewer in list of visible viewers (the forms to display images)
{
get the filename from the id stored in the viewer
check to see if the file exists
if it does exist,
create new bitmap from image
and return that image
otherwise return null
if returned image isn't null, display it on screen
}
कि स्पष्ट रूप से कुछ परतों में हो रहा है - छवि लोड यूआई के लिए सेवाएं परत में चला जाता है और फिर प्रस्तुति के लिए के माध्यम से इस गुजरता है और फिर लेकिन यह है कि क्या हो रहा है का सार है ।
मैंने इसका परीक्षण करने के लिए एक त्वरित परीक्षण ऐप लिखा, और ImageFast 11 मिलियन टिकों से तेज़ है। छवि की फाइल से 1 9 मिलियन लगते हैं जबकि ImageFast केवल 7 मिलियन लेता है। –
परीक्षण परिणामों के लिए धन्यवाद, डेविड :) – bernhof
कोई समस्या नहीं है। मुझे ImageFast परिणाम पसंद हैं। –