נושאים פעיליםנושאים פעילים  הצגת רשימה של חברי הפורוםרשימת משתמשים  חיפוש בפורוםחיפוש  עזרהעזרה
  הרשמההרשמה  התחברותהתחברות RSS עדכונים
תיכנות
RSS UnderWarrior Forums : RSS תיכנות
נושא

נושא: c# תוכנה שיוצרת קבצי תמונה - בעיית זיכרון

שליחת תגובהשליחת נושא חדש
כותב
הודעה << נושא קודם | נושא הבא >>
מיואש
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 11 April 2010 בשעה 15:39 | IP רשוּם
ציטוט מיואש

כתבתי קוד קטן שאמור לשמור קבצי תמונה על ההארד דיסק.
הכל עובד סבבה חוץ מצריכת הזיכרון.
התוכנה יכולה ויוצרת (ע"פ דרישה) כמות גדולה של קבצי תמונה (JPG או BMP).
אני משתמש באובייקט image המוגדר כ new bitmap ופשוט מפעיל את .save
צריכת הזיכרון עולה בכ 10K לכל קובץ תמונה (בערך). לעיתים מתבצע שיחרור של הזיכרון ואז התוכנה חוזרת ל (המון בשביל שטות כזו ..)100K, אחרת היא מטפסת ומגיעה אפילו ל 300-400.
בקיצור זה לא יעיל ככה.

ניסיתי להגדיר את האובייקט כ null לאחר שמירת הקובץ. לא עוזר כלל.
ניסיתי עוד כמה דברים כשחשבתי שהבעיה היא בשאר הקוד. לא עזר, רק עזר לי להבין שהבעיה היא ביצירת הקבצים.

מה עושים ?

 
חזרה לתחילת העמוד הצג את כרטיס החבר של מיואש חפש הודעות אחרות של מיואש בקר בדף הבית של מיואש
 
מיואש
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 12 April 2010 בשעה 21:39 | IP רשוּם
ציטוט מיואש

מישהו? משהו ? בבקשה, כל עזרה תתקבל בברכה
 
חזרה לתחילת העמוד הצג את כרטיס החבר של מיואש חפש הודעות אחרות של מיואש בקר בדף הבית של מיואש
 
אוריה
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 29 January 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 230
נשלח בתאריך: 12 April 2010 בשעה 22:04 | IP רשוּם
ציטוט אוריה

בעיקרון אפשר להרוס את האובייקט בעזרת פונקציה הורסת - הפונקציה Dispose.
הפונקציה אמורה למחוק את האובייקט עוד לפני שה-GC עושה את זה
תנסה, אולי יעבוד


__________________
SmartProgramming
נא לא להגיב בשבת על מה שאני כותב

עדיף להשקיע עוד שעה בתיעוד, מלאבד עוד 100 שעות ויותר על שיחזר של כל הפרוייקט מההתחלה..
חזרה לתחילת העמוד הצג את כרטיס החבר של אוריה חפש הודעות אחרות של אוריה בקר בדף הבית של אוריה
 
מיואש
אורח
אורח


הצטרף / הצטרפה: 01 October 2003
משתמש: אונליין
הודעות: 12647
נשלח בתאריך: 12 April 2010 בשעה 22:12 | IP רשוּם
ציטוט מיואש

תודה אוריה. בדיוק ראיתי איזה מסמך פה על דיספוז, אני אקרא ואנסה.
אם יש עוד רעיונות זה יתקבל בברכה.
 
בנוסף, אני רוצה לנסות להוריד את צריכת הזיכרון ע"י זיהוי תמונות כפולות ואז לא לשמור אותן.
יש דרך לבדוק האם שני קבצי BITMAP זהים ?
 
 
חזרה לתחילת העמוד הצג את כרטיס החבר של מיואש חפש הודעות אחרות של מיואש בקר בדף הבית של מיואש
 
אוריה
משתמש חבר
משתמש חבר
סמל אישי

הצטרף / הצטרפה: 29 January 2010
מדינה: Israel
משתמש: מנותק/ת
הודעות: 230
נשלח בתאריך: 12 April 2010 בשעה 23:07 | IP רשוּם
ציטוט אוריה

כן, מה שאני מכיר במחלקה Bitmap(אפשר להמיר ל-Bitmap, נראה לי) יש פונקציה GetPixel שנותן את הצבע של הפיקסל בנקודה מסויימת, אז אתה עובר לאורך ורוחב התמונה(אורך - HorizontalResolution, רוחב - VerticalResolution של Bitmap).
אם אתה רוצה משהו חכם יותר תחפש אלגוריתמים לזיהוי תמונה.


__________________
SmartProgramming
נא לא להגיב בשבת על מה שאני כותב

עדיף להשקיע עוד שעה בתיעוד, מלאבד עוד 100 שעות ויותר על שיחזר של כל הפרוייקט מההתחלה..
חזרה לתחילת העמוד הצג את כרטיס החבר של אוריה חפש הודעות אחרות של אוריה בקר בדף הבית של אוריה
 

אם ברצונך להגיב לנושא זה עליך קודם להתחבר
אם אינך רשום/ה כבר עליך להרשם

  שליחת תגובהשליחת נושא חדש
גרסת הדפסה גרסת הדפסה

קפיצה לפורום
אינך יכול/ה לשלוח נושאים חדשים בפורום זה
אינך יכול/ה להגיב לנושאים בפורום זה
אינך יכול/ה למחוק את הודעותיך ותגוביך בפורום זה
אינך יכול/ה לערוך את הודעותיך ותגובותיך בפורום זה
אינך יכול/ה לצור סקרים בפורום זה
אינך יכול/ה להצביע בסקרים בפורום זה