מה עדיף?

dagon

New member
כבר דיברנו על זה.

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

Nachum Ginat

New member
לא כאשר מדובר בחיבור לבסיס נתונים

בדברים אחרים כן, כמו REGEXP, (שיכנת אותי שלא נכון לייצר אובייקט בשביל REGEXP :) ). ומה שרציתי לומר כאן היה יותר לכיוון נושא המגה פורטל שמרקו העלה, ולא לויכוח JS או VBS. בנושא הזה, אני מסכים איתכם, JS יותר מהירה (טובה לא רוצה להגיד), אבל עדיין, אם למישהו יותר נוח לכתוב ב VBS, שימשיך לכתוב ב VBS, המערכות שלו יעבדו. נקודה. טיפה יותר מהר טיפה יותר לאט אבל יעבדו. גם VC יותר חזקה ויותר מהירה מ VB, אז מה, אז שכולם יתחילו לכתוב ב VC, זה הרי לא יקרה, לשנות הרגלים זה לא דבר קל, ובטח גם לא ללמוד שפה חדשה שכל פעם שאתה עושה איזו שגיאה אתה מייד חושב: "פפפ... אם הייתי עושה את זה בשפה האחרת מזמן כבר הייתי גומר את זה". לכן אני עדיין חושב שכל אחד אמור לעבוד במה שנוח לו, במה שהוא שולט הכי טוב, ומצד שני להקפיד על הכללים, אייך כותבים מערכת בצורה נכונה.
 

dagon

New member
גם כאשר מדובר בחיבור ל-DB.

כשההבדל הוא בין לייצר ADODB.Connection ב-ASP ולקרוא ל-SPROC ובין לייצר COM שאתה עשית שעושה בדיוק אותו הדבר - _לא משתלם_ לקרוא ל-COM הזה. וזה לא -טיפה- יותר מהר, אתה ראית את ה-benchmarking שלי בכמה מקרים, שוב ושוב, כל אחד ואחד היה _הרבה_ יותר מהר.
 

Nachum Ginat

New member
לא ראיתי benchmarking בנושא הזה

אבל כל העולם (לא רק אני) טוען ששיטת ההתחברות ל DB דרך COM הרבה יותר מהירה, הרבה יותר יעילה, הרבה יותר חסכונית. אז אייך זה שכולם טועים ורק אתה צודק? :)
 

dagon

New member
נתתי דוגמה מאוד ספציפית

חיבור -> הרצת SPROC -> סגירה. אין שום סיבה להעביר דבר כזה לרמת custom COM כי אין שום רווח, אני דוחק בך לבדוק בעצמך מה ההבדלים בין לעשות את הנ"ל ישירות ב-ASP ובין לקרוא ל-COM שיעשה את אותו הדבר. אתה תופתע. כמובן שבהרבה מקרים, בעלי יותר פעולות או קריאות חיצוניות רבות, זה לא כך, אבל זאת לא היתה הטענה שלי. הטענה שלי היא שהמשפט "תמיד עדיף לקרוא ל-COM" לא _תמיד_ תופס, לא אמרתי שהוא אף פעם לא תופס. וכשהתיחסתי ל-benchmarking התייחסתי לדוגמאות JS נגד VBS וההבדלים העצומים שהיו ביניהם, לאו דווקא ל-COM interop.
 

Nachum Ginat

New member
עדיין לא מסכים, כי מה עם ה..

CONNECTION POOLING? ואם יש לך עשרת אלפים יוזרים שפותחים את ה SPROC בו זמנית אז יש לך עשרת אלפים קונקשניים פתוחים. ואילו דרך +COM ששם יושב האובייקט COM יהיו לך במקרה הרע רק 800 קונקשניים פתוחים. זה לא שינוי בפרפורמנס?
 

dagon

New member
מה?

Connection pooling קורה ברמת ה-Provider (גם ב-ODBC וגם ישירות עם OLEDB), הוא יתבצע גם אם אתה פותח את ה-connection דרך COM וגם אם אתה פותח אותו דרך ASP.
 

Nachum Ginat

New member
באמת....

יש הבדל עצום בין CONNECTION POOLING שמבוצע ע"י ה PROVIDER לבין זה שמבוצע ע"י +COM יש מספיק מאמרים גם על זה
 

dagon

New member
לא ממש..

Connection pooling מתבצע ברמת ה-Provider, אתה מדבר על +MTS\COM ו-Object pooling. גם ASP משתמש ב-+MTS\COM כשהוא יוצר אובייקטים דרך Server.CreateObject, כל אובייקט שנוצר דרך Server מטופל ע"י MTS, אובייקט שנוצר ע"י CreateObject או new ActiveXObject לא יעבור דרך MTS ואכן יהווה בזבוז כשזה מגיע למספר משתמשים. לכן הסטנדרט הוא Server.CreateObject. אז שוב, לא יהיה הבדל במספר הסופי כאן _או_ בביצועים. ציטוט מ-MSDN:
First, under Windows NT 4.0, our advice to developers was that compiled Visual Basic code would result in greater performance than script code. Also, by placing logic in COM+ components, developers tend to better avoid the exploding spaghetti-code nature of very long/complex ASP pages. However, our Nile implementation in all-ASP on Windows 2000 actually performs every bit as good (even a little better) than the compiled COM+ version. The lesson here is that on Windows 2000, you do not pay nearly the performance penalty for being in script versus compiled Visual Basic code that you used to pay. The ASP script engine is a lot faster on Windows 2000.​
אני מקווה שבזה סגרנו את הויכוח הטיפשי הזה
.
 

dagon

New member
לפי דעתי..

אתה מבולבל. וכמו שראית בניסוי השוואה שנערך ב-MSDN גירסת ה-ASP הטהור מתבצעת מהר יותר ומטפלת ביותר משתמשים מאשר גירסת ה-+COM. וזה אפילו לא עם מצב פשוט כמו שהראיתי, אלא עם אופרציות לוגיות מסובכות על ה-Data. אחרי הממצאים האלה באמת שאין יותר מה להתווכח, אלא אם אתה מוכן לעשות ניסוי משלך ולהראות ל-MSDN שהבדיקות שהם עשו לא נכונות.
 

dagon

New member
נוחות היא דבר יחסי

מה שנוח לך, לא בהכרח נוח לאנשים אחרים. מפתחים שבאים מסביבות כמו java, c++, perl ובעצם, רוב שפות התכנות, יעדיפו את JS מבחינת נוחות וקריאות קוד. מפתחים מתחילים או אנשי VB יעדיפו את VBS מבחינת נוחות בגלל הפשטות הגדולה שלה והדמיון שלה לאנגלית (בניגוד לדמיון לשפת תכנות). ואין כאן trend שלפי גודל האתר או האפליקציה יש לבחור את השפה, תמיד עדיף להטריד את השרת כמה שפחות, ואת זה JS תעשה טוב יותר מ-VBS (יחד עם כמעט כל דבר אחר
).
 

De-Panther

New member
הצלחתי את הטריינס ב494 שניות.......

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

DrunkGoat

New member
מה עם PerlScript?

גם איתה אפשר לכתוב ASP. אולי היא לא פופלרית בקרב מתכנתי ה-ASP, אבל צ´אנס תתני לה?
 

dagon

New member
PerlScript ו-Python

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

neatsun

New member
JScript ../images/Emo13.gif

טוב, מכיון שדעתי ידועה, ורוב הסיבות צויינו ונמנו, ואפשר כמובן למצוא אותם במאמר שילדה בלבן קישרה, אני רק אוסיף כמה נקודות... - תכנות טוב. דבר ראשון, צריך לדעת לתכנת טוב, להבין ולהפנים עקרונות תכנות בסיסיים, ולשאוף ל optimization. אם כותבים קוד רע, הרבה פחות משנה באיזה שפה הוא כתוב :) - שפה אחת. אפליקציית web צריכה (לדעתי) להשען על שתי "רגליים". צד השרת שאחראי לטיפול בנתונים, קבצים וכו, וצד הלקוח שאחראי לתצוגה, ממשק ואינטראקציה (חלוקה גסה..). לכן, להבנתי, עדיף ב ב י ר ו ר להשתמש בשפה אחת לכל האפליקציה, לפחות משתי הסיבות הבאות: * התמחות : מפתח web צריך לשלוט בטכניקות של שני ה"צדדים". אם הוא משתמש בשפת סקריפט אחת, הוא משכלל את היכולות והשליטה בשפה, ונמנע מהבלבול של חלופי שפה וסינטקס תכופים. * reuse : אם משתמשים בשפה אחת, אפשר להשתמש בספריות פונקציות משותפות, ובאובייקטים משותפים, לשני הצדדים. (למשל data validation). (זה לא רק תיאוריה.. אנחנו משתמשים הרבה בקוד משותף, וזה מצויין) - הדגש|נוחות. טוב, זה באמת עניין של הרגל. מי שעובר לכתוב ב jscript אולי ירגיש "אי-נוחות" קלה בהתחלה, אבל זה עובר מהר (הייתי שם...את השבועות הראשונים לתכנות ה ASP שלי "ביליתי" עם vbscript, ההמרה, אגב, הייתה קלה מאד, והיום זה לא יותר מזכרון רחוק, וללא ש ו ם געגועים). עניין הנוחות, אם חושבים על זה, מושפע ביותר מהנקודה הקודמת "שפה אחת". ממש לא נוח לעבוד עם שתי שפות! - שטיפת מוח (?) אני ממש לא בעד מסיונריות, בשם תחום, ובטח אין לי שום אינטרס אישי להתערב בשפה שבה מישהו ( מלבד השותף שלי
) מתכנת. אבל מכיון שיש ערפל כבד על עצם האפשרות להשתמש ב jscript בסביבת ASP, עד כדי כך שהרבה חושבים ש vbscript היא ASP ("איך כותבים ב ASP ...?), ומכיון שאני באמת אוהבת jscript ומאמינה ביתרונותיה, אני משתדלת לפתוח פתח בהזדמנויות המתאימות, ולהאיר את הפינות האפלות. בטח אין שום סיבה שמישהו "יפחד" להגיד את דעתו, או להמשיך לכתוב באושר (ועושר?) ב vbscript. כל אחד צריך לעשות את הבחירה שלו, אבל לפני שבוחרים, צריך להכיר את האפשרויות! ת כ נ ו ת נ ע י ם :)
neat
 

roee

New member
שאלה

אם אני מפתח בשתי שפות שונות בסרוור זה משפיע על הביצועים? כרגע אני בונה בJS (סרוור סייד ) אבל יש לי עדיין דפים בVBS שמכיוון שעוד לא הספקתי להמיר אותם לJS . [יש דפים שאני גם לא יודע איך..] כמה משפיע זה על הביצועים?
 

neatsun

New member
תשובה

אם יש לך דפים בשפה זו ודפים בשפה אחרת, כל דף יתבצע בגבולות היכולת של השפה בה הוא כתוב. השפעה שלילית על ביצועים תהיה אם יש לך דף בו אתה משתמש בשתי השפות גם יחד. במקרה כזה יש overhead של קריאה ל parsers של שתי השפות, והפסד בקריאות cross-language . בקשר להמרה... "לא הספקתי" זה כח טבע, "לא יודע איך"...כדי לעודד אותך: אין דף שכתוב ב vbscript שאי אפשר להמיר ל jscript. בהצלחה
 

roee

New member
קודם כל תודה

ענית בדיוק על מה ששאלתי... על כוח הטבע אני מתגבר לבד... [מנסה לפחות] ומה שלא אני שואל מישהו! תודה!
 
למעלה