DCSIMG
עמוד הבית| חבילות השירות שלנו| חומר חופשי| צור קשר
ארכיטקט-ידיים-מלוכלכות, מס’ 4 – קומפילציה דינאמית הורגת את המפתחים - בלוג היועצים של מיקרוסופט ישראל

בלוג היועצים של מיקרוסופט ישראל

ארכיטקט-ידיים-מלוכלכות, מס’ 4 – קומפילציה דינאמית הורגת את המפתחים

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

 

בהתחלה חשבנו על איטיות ב-Backend ומהר מאד ראינו שזה לא המקרה. השתמשנו ב-Netmon לצורך כך.

אחרי כמה הרהורים חשבנו כי הזמן מתבזבז על Serialization או Dynamic Compilation. במקרה הזה מופעל CSharp Compiler – פעולה לא הכי קלה בעולם.

כדי לנטר פעילות של ה-Compiler השתמשנו בכלי חינמי מצויין – Procmon. פילטרנו אותו להאזין לתהליך של w3wp.exeכאשר הוא ניגש ל-csc.exe, הקומפיילר. זה מה שראינו:

image

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

את התמונה הזו ראינו 18 פעם, תכפיל ב-3 שניות כל אחת – קיבלת איטיות של דקה, בום!

כשפתחנו את הקוד – ראינו הפעלה ישירה של ComileAssmeblyFromDom.

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

 

אז מי הלקוח כאן? :)

שירותי MCS רלוונטיים

חומר רלוונטי

 

שמי אליק לוין ואני מתרכז ב- Architecture, Security, and Performance באפליקציות Net.

בזמני הפנוי אני מפתח את עצמי בתחומים רבים אחרים.

 

This template is made with PracticeThis.com plugin for Windows Live Writer

תוכן התגובה

Moshe L כתב/ה:

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

# December 2, 2009 11:48 AM

alikl כתב/ה:

משה,

זה -by design :)

לכן MS לא ממליצה לבצע עדכונים כאלה על חיי במיוחד בעומס אלא לפי תהליך של ROLL OUT מסודר כשאתה מוציא אחד השרתים OFFLINE, מבצע עדכון ואז מחזיר אותו לNLB

# December 2, 2009 11:56 AM

מיכאל כתב/ה:

מדהים. כמה זמן זה לוקח ?

# December 2, 2009 11:58 AM

alikl כתב/ה:

מיכאל,

אני לא סגור על השאלה... :) האם זה:

- כמה זמן לוקח למצוא את הבעיה?

כמה זמן לוקח לתקן אותה?

כמה זמן לוקח הומפילציה אחרי התיקון אם יבוצע?

:)

# December 2, 2009 1:43 PM

Moshe L כתב/ה:

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

# December 3, 2009 10:33 AM
שלח תגובה

(שדה חובה)  

(שדה חובה)  

(אופציונלי)

(שדה חובה) 

Please add 1 and 7 and type the answer here:


Enter the numbers above: