על כמה לשים את הזיכרון הורטואלי של המחשב ?! - עמוד 3 - Windows - HWzone פורומים
עבור לתוכן
  • צור חשבון

על כמה לשים את הזיכרון הורטואלי של המחשב ?!


yosizach

Recommended Posts

כולכם כאלה חכמים? למה אתם חושבים שאתם יודעים יותר טוב מהחבר'ה הטובים במיקרוסופט? תאמינו לי שהם חשבו על זה קצת.

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

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

עם כל הכבוד למיקרוסופט, ההגדרות שלהם הרבה פעמים תואמות למשתמש הממוצע, זה שרוצה שינהלו בשבילו הכל, זה שלא רוצה לשמוע על הגדרות, זה שאוהב Wizardים. אנחנו לא כאלה, ועצם זה שהמשתמש שואל את השאלה (ושמיקרוסופט מאפשרים לך לשנות את האופציה הזאת), אומרת שיש על מה לדבר.

והייתי רוצה לראות דוגמה שבו שימוש ב- במקום הזכרון הוירטואלי גורעת מהביצועים. הזכרון הוירטואלי הומצא למקרים שאין מספיק , ולא להיפך!

לפותח הדיון, יש לך מספיק כדי שתוכל לעבוד בלי וירטואלי, אבל רק בשביל התוכנות שצריכות את זה (כמו הדוגמה של Holy), וכדי לפתור בעיות כאלה או אחרות שעלולות לצוץ לך, אני מציע שתגדיר כמות קבועה וקטנה של וירטואלי (הייתי הולך על 50 מגה). אתה תבטיח ככה שרוב מערכת ההפעלה והתוכנות שאתה מריץ יושבות בזכרון האמיתי ותראה שיפור משמעותי בביצועים.

וחבר'ה... לא לריב. זה בסה"כ וירטואלי.

קישור לתוכן
שתף באתרים אחרים

  • תגובות 37
  • נוצר
  • תגובה אחרונה

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

בינתיים כולכם דיבורים, הוכחות אין לך.

אתה אתה לא יכול לפסול שום דבר עד שלא תביא הוכחה נורמאלית, גם אתה רק דיבורים.

הדוגמא שהבאת ממש לא רוונטית כי:

1) אם יהיה מספיק זכרון פיזי אני בטוח שהיא תעבוד גם בלי זכרון וירטואלי (ואני לא מדבר על 64MB, אלא נניח 256MB או יותר, אין מצב שזה לא יעבוד.)

2) זה כבר לא רלוונטי לימינו, הכתבה הזאת נכתבה בכלל לפני 7 שנים!

חוץ מזה שעוד לא הבאת שום הוכחה לטענה הבאה (בעיקר המודגשת), בחיים לא ראיתי שום אתר שאפילו מרמז על תופעה כזאת, תאיר את עיני.

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

אם יש לי 512MB? על כמה כדאי לשים?

עכשיו זה על:

Initial size: 768

maximus size: 1536

כדאי לשנות משהו?

כן, קבע גם את הInitial size וגם את הMaximum size ל-1536

והייתי רוצה לראות דוגמה שבו שימוש ב- במקום הזכרון הוירטואלי גורעת מהביצועים. הזכרון הוירטואלי הומצא למקרים שאין מספיק , ולא להיפך!

לפותח הדיון, יש לך מספיק כדי שתוכל לעבוד בלי וירטואלי, אבל רק בשביל התוכנות שצריכות את זה (כמו הדוגמה של Holy), וכדי לפתור בעיות כאלה או אחרות שעלולות לצוץ לך, אני מציע שתגדיר כמות קבועה וקטנה של וירטואלי (הייתי הולך על 50 מגה). אתה תבטיח ככה שרוב מערכת ההפעלה והתוכנות שאתה מריץ יושבות בזכרון האמיתי ותראה שיפור משמעותי בביצועים.

לגבי המשפט הראשון שלך, זה נכון אבל הבעייה היא (כפי שרשמתי) שמה שאתה מקצה בInital size, את החלק הזה תמיד ימלא עד הערך שרשום בו, במידע שנלקח ישירות מהזכרון הפיזי.

הכוונה שאם הגדרת את הInital size ל1GB אז יעתיק את מה שיש בזכרון בפיזי עד שיגיע ל1GB! תחשוב שכל פעם שאתה פותח תוכנה מה הOS צריך לעשות, עצם העובדה שחלונות צריך כל הזמן להעביר מידע בתוך הקובץ הזה, כבר זה מאיט בצורה משמעותית את ביצועי המחשב.

ההמלצה שלך היא טובה! 50MB לא ממש יזיזו ובמקרה שהמשתמש יעבור את כמות הזכרון הפיזי שקיימת אצלו, המחשב יתחיל להשתמש בזכרון הוירטואלי.

הייתי ממליץ למשתמש הממוצע את ההגדרה הבאה (לבעלי 1GB זכרון):

Initial size: 50MB

maximum size:300MB

לפי הערכתי, שימוש בהגדרה כזאת תגרום למערכת ההפעלה להשתמש בVM עם יותר מ50MB רק כאשר לא יישאר לו מקום בזכרון הפיזי.

קישור לתוכן
שתף באתרים אחרים

חוץ מזה שעוד לא הבאת שום הוכחה לטענה הבאה (בעיקר המודגשת), בחיים לא ראיתי שום אתר שאפילו מרמז על תופעה כזאת, תאיר את עיני.

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

1. להמשיך להקצות הרבה מקום ולסתום את הזיכרון.

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

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

ואם אתה מתעקש על הוכחה, למרות שאני בטוח שאתה תגיד שהיא לא נכונה הנה

Can the Virtual Memory be turned off on a really large machine?

Strictly speaking Virtual Memory is always in operation and cannot be turned off. What is meant by such wording is set the system to use no page file space at all.

Doing this would waste a lot of the RAM. The reason is that when programs ask for an allocation of Virtual memory space, they may ask for a great deal more than they ever actually bring into use the total may easily run to hundreds of megabytes. These addresses have to be assigned to somewhere by the system. If there is a page file available, the system can assign them to it if there is not, they have to be assigned to RAM, locking it out from any actual use.

כל מה שהיה צריך זה לחפש בגוגול allocation + virtual memory

http://aumha.org/win5/a/xpvm.php

קישור לתוכן
שתף באתרים אחרים

ארכיון

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


×
  • צור חדש...