ASP.NET vs ...
-
@רפאל אמר בבעקבות האשכול תבניות של API - איזה תחליף יש לnode.js ??:
ASP.NET נחשב למהיר בהרבה מNodeJs, ולמעשה הוא נחשב אחד מהWeb servers המהירים והיעילים ביותר כיום (משאיר הרחק מאחוריו את Java, Go, NodeJs).
מה המקור?
משהו נראה לי מאוד מוזר בbenchmark הזה
כי למה שGO שהיא שפה מקומפלת תהיה יותר איטית מJava.
וגם בתוך GO יש הבדלים ענקיים בין הספריות השונות (אז זה לא פייר לקחת את הספריה הכי איטית)
ובכלל benchmarkים זה מדד קצת מתעתע לפעמים כי זה תלוי מה אתה מודד והאם השרת החזיר 1K או 10M בכל בקשה ועוד ועוד.
באתר שנראה לי הכי אמין בbenchmarkים (הוא בודק הרבה סוגי דאטא,ופרמטרים שונים)
אני שגם במבחנים שaspcore מוביל יש ספריות של GO שמפגרות אחריו בפער לא כל כך גדול (80-95%)
אבל יש מדדים שaspcore ממש לא מוביל למשל latency ששם הספריות המהירות של GO מובילות עליו באופן ניכר.
וכל זה בplaintext, בשאר המבחנים, אני לא רואה מבחן שaspcore מוביל בכלל. -
@nigun צרפתי מקור, עם זאת צריך לזכור שישנם צווארי בקבוק רבים, כך שהחשיבה בכיוון אחד הוא מוטעה.
אני התייחסתי לRequest Per Seconds, שבו ASP מצטיינת תודות לשימוש האינטנסיבי של השרת Kestrel והמרכיבים של הFramework בתכנות אסינכרוני, בה הThread חוזר לThreadpool בהמתנה לפעולות מסוג IO.הBenchmark שציינתי מייצג את הComposite scores, שזה ציון המשקלל את שאר הטסטים.
-
@רפאל
א. במקור שהבאת אני לא רואה את ההבדלים הדרמטיים האלו
שים לב שיש שם הרבה ספריות שכתובות בGO ולא קוראים להם GO
יש עמודה שאפשר לראות באיזה שפה על ספריה כתובה.
ב. גם בGO יש סוג של Threadpool, לא יודע האם זה בדיוק כמו בASP, אבל נראה לי שזה אותו רעיון. -
@nigun אני לא יודע אם לזה כוונת המשורר... אבל תן לי להביע דעתי (אולי בכיוון אחר)
מכיר את המשחק ההוא עם השחמט?
למי שלא מכיר:
בעבר ברחוק (כמה?) היה מלך ולמלך שר (ככל הנראה יהודי ), באחד הפעמים שהתפעל המלך מחכמתו הציע לשר מתנת "אתה בוחר" כל מה שיעלה בדעתך - שלך.
ענה השר בערמה "ובכן אדוני המלך, במשחק השחמט ישנם 64 קוביות, כל מה שאני רוצה שתתחיל עם קובייה אחת ולה שני גרגרי חיטה (ישנה גרסה שמתחילים עם אחד ובשני שתיים, לא מאוד משנה), לאחר מכל לכל קובייה תן ערך של הקובייה הקודמת כשהיא מוכפלת בערך עצמה, ובסופו של דבר תן לי כל גרגרי החיטה הללו".
גיחך המלך על דבריו, "גרגרי חיטה יש לי לרוב", ובכן נתחיל בחשבון...אני הגעתי למסקנה שאם המלך הזה היה JS הוא היה נתקע ב11 קוביות
ואם הוא היה C# הוא היה נתקע אחרי 20 קוביותתבדוק כמה GO נתקע...
-
@ש-ב-ח
לבדיקה הזאת קוראים benchmark
נהוג לתת תרגילים שונים כי לשכל שפה יש חולשות בפינה אחרת
הרשת מלאה בbenchmarkים הנה אתר שנראה שהוא עושה את זה על מגוון שפות עם מגוון אלגוריתמים, ואתה יכול לראות למשל במקרה של GO VS .NET
שכל אחד מנצח במבחן אחר לרוב בפערים קטנים
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/go-csharpcore.html