כברירת מחדל, גודל מחסנית המרבי של הליך משנה שנוצר בתהליך IIS מקורי הוא 256 קילו-בתים

סיכום

כברירת מחדל, גודל מחסנית המרבי של הליך משנה שנוצר על-ידי תהליך Microsoft Internet Information Services (IIS) מקורי הוא 256 קילו-בתים לפני Windows Server 2008. לדוגמה, כאשר Inetinfo.exe, DLLHost.exe או W3wp.exe יוצרת הליך משנה ב- IIS 5.0 או ב- IIS 6.0, גודל מחסנית המרבי של הליך המשנה הוא 256 קילו-בתים כברירת מחדל. באפשרותך גם במפורש קריאה לפונקציה CreateThread כדי לציין את גודל מחסנית של הליך המשנה. ב- Microsoft Windows 2000, אם הליך משנה, יוצר תהליך העובד ASP.NET של Microsoft (ASPNet_wp.exe) גודל מחסנית המרבי של הליך המשנה הוא 1 MB. ב- Windows Server 2008 ומעלה, הגודל המרבי של מחסנית של הליך משנה פועל בגירסת 32 סיביות של IIS הוא 256 קילו-בתים, וב-x64 השרת הוא 512 KB.

הערה: Internet Information Services היא פלטפורמה יישום אינטרנט מרובי המאפשר קוד יישום הפועל בתוך כל תהליך העובד לניצול מאות או יותר הליכי משנה בבת אחת במידת הצורך. כל הליכי המשנה מאוגד על-ידי מגבלה גודל מחסנית כדי לשמור את השימוש בזיכרון וירטואלי של תהליך בתוך גבולות לניהול.

מידע נוסף

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

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

void func(void)   {
int i[100000];
// Use 100,000 integers multiplied by 4 bytes per integer to store the array.
return;
}

הערה אין אפשרות לקרוא לפונקציה זו ב- IIS 4.0, ב- IIS 5.0, ב- IIS 5.1 או ב- IIS 6.0.

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

void func(void)   {
int *i

i = new int[100000];
// More code goes here.
return;
}

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

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

  • הפונקציה דורשת 40 בתים עבור משתנה מקומי.

  • הפונקציה זו באופן רקורסיבי הנקרא 10,000 פעמים.

ביישום נפוץ Gateway Interface (CGI), הליך משנה אין גודל מחסנית מרבי של 256 קילו-בתים. כאשר אתה מפעיל את יישום ה-CGI, תהליך חדש נוצר, והגדר קובצי ההרצה של CGI את גודל מחסנית. באפשרותך גם במפורש קריאה לפונקציה CreateThread כדי לציין את גודל מחסנית של הליך המשנה.

לקבלת מידע נוסף, בקר באתר האינטרנט של MSDN הבא:

זקוק לעזרה נוספת?

הרחב את הכישורים שלך
סייר בהדרכה
קבל תכונות חדשות לפני כולם
הצטרף למשתתפי Microsoft insider

האם מידע זה היה שימושי?

תודה על המשוב!

תודה על המשוב! נראה שכדאי לקשר אותך לאחד מנציגי התמיכה של Office.

×