17-10-2005, 20:00
|
|
|
|
חבר מתאריך: 04.08.02
הודעות: 4,468
|
|
..
אמת, הקצאת הזיכרון/שחרור ב-kernel mode בתדירות גבוהה ייגרום לירידת ביצועים במערכת.
אחד הסיבות שחובה תמיד כשאפשר להשתמש מחדש בזיכרון שהוקצא ולא להקצאות מחדש.
הבעיה אצלך, מורכבת יותר כמובן, אלגוריתם שיעשה פלאים בניהול הזיכרון במצב שלך כרגע, אני לא מכיר.
איך הגעת למצב אבל, שאתה צריך להקצאות בלוקים קטנים בתדירות גבוה עם זמן מחיה קטן?
האם מדובר בזמני מחיה שווים? אם כן, כדאי לשקול לאחד את תהליך הקצאה של אותם בלוקים, ככה תוכל לשחרר אותם במכה אחת, ובכך למנוע קריאות מיותרות לפונקציה שחרור שלך, שאמנם היא אכן מבצעת דיפרג על הזיכרון, אבל גוזלת משאבים רבים (אולי פה יש מקום לשיפור?)
אולי לעשות שימוש חוזר בזיכרון? מדובר פה על בלוקים קטנים שאתה מקצא אותם בתדירות גבוה, האם שווה להשקיע לעשות דיפרג כל שחרור לעומת להחזיק איזור קבוע לאותם בלוקים?
_____________________________________
C pogrammers never die. They are just cast into void.
|