DCSIMG
עלות/תועלת בשיפור ביצועים - Dotmad (on .Net)

Dotmad (on .Net)

Just Another Web 5.0 Blog

Podcasts

Blogroll

עלות/תועלת בשיפור ביצועים

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

הטענה של גדי הייתה שאם משתמשים במלוא השירותים שWCF מציע התקורה על פני שימוש במחלקות קלאסיות אינה גבוהה, לכן כדאי להשתמש בפיתרון הנ"ל:

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

אשר התנגד לגישה הזו, בטענה שבמערכות הקרובות לזמן אמת אין "תקורה זניחה", ושגם שיפור של 10% בביצועים במערכת כזו יכול להיות משמעותי:

"גם אם (אני מצטט)  "זה עובד מספיק טוב" , אבל ניתן לשפר את ביצועי התוכנה ב 10% וזה יוסיף (לדוגמא) 5% ליעילות המבצעית של המערכת, זה שווה וצריך לעשות את זה"

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

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

במקרה של הוויכוח בין גדי לאשר השאלה שצריכה להישאל היא האם יש שימוש ביכולות שהתשתית (WCF במקרה הזה) מספקת, וכמה זמן היה לוקח לפתח תשתית מקבילה אבל עם ביצועים משופרים ב-10%. אם התשובה לחלק הראשון היא חיובית, והתשובה לחלק השני נמדדת בחודשי או שנות אדם - הייתי בוחר בWCF ללא היסוס.

תוכן התגובה

Moshe L כתב/ה:

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

וכוונתי גם במערכות מידע (אתרים למשל).

# December 30, 2007 11:20 PM

ekampf כתב/ה:

Engineering is all about cost vs. value...

# December 31, 2007 12:27 AM

Bah, Humbug! כתב/ה:

הקדמה בפוסט הקודם שלי בסדרת "טעויות של מפתחים" הסברתי את ההבדל בין הConditionalAttribute לבין

# December 31, 2007 8:56 PM