עבור לתוכן

תוכנות שכתובות ב C/C++ על ידי לוקחות 50% מעבד?

Featured Replies

פורסם

למה תוכנות שאני כותב ב C/C++ לוקחות 50% מעבד? רוב התוכנות שלי זה ככה... :\

פורסם

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

בהנחה שהתוכנית שלך לא עושה איזה חישוב אינטנסיבי (לרוב הסיבה ללקחית 100 אחוז מהמעבד), אתה צריך להורות לה להפסיק לפעול אם אין לה סיבה. הדרך הפשוטה היא למשל ע"י הוספת פקודת שינה (sleep/delay) לפרק זמן קצר מאוד (אפילו כמה מילי שניות יכול להספיק).

למשל התוכנית הזו תיקח הרבה משאבי מעבד:

int main(void) {while (1==1) {}}

והתוכנית הזו לא תיקח (יחסית) כלום:

int main(void) {while (1==1) {sleep(1);}}

פורסם
  • מחבר

יש לי P4 עם HT נראה לי אותו דבר.

אוקי הוספתי פקודת שינה ל 1 מילי שניות ועכשיו זה לוקח 01 CPU תודה רבה :)

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים