מישהו אולי יודע

scalla

New member
מישהו אולי יודע

מה מהירות התוכנות שנעשות ב#C ביחס ל++C וVB?
 

DadleFish

New member
אני לא יודע מספרים מדויקים,

אבל תוכנות #C איטיות יותר מ - ++C, זו עובדה שאין אפשרות להתווכח עליה. לגבי היחס בין VB לבין #C, אני לא חושב שיש הבדל גדול. שתיהן איטיות.
 

MotiAd

New member
אויש אויש. תבדוק לפני מדברת...

למה אתה אומר דברים כאלו? מספיק עם זה.
 

DadleFish

New member
vini vidi vicci

מה כל כך קשה להבין שכשעושים שתי פעולות שכל אחת לוקחת X זמן, זה נמשך שני X, וכשעושים פעולה אחת שלוקחת X זמן, זה נמשך X? מה כל כך קשה להבין שכל שפה שדוחפת לך את המנגנונים הייחודיים והמאגניבים שלה לתוך הקוד, תהיה בהכרח יותר איטית? יותר מהר לפתח ב-#C. התוצר יהיה יותר איטי, נקודה.
 

DadleFish

New member
בקריאה של שאר ההודעות שלך

אני מבין שאתה מתייחס ל-VB כאל שוות ביצועים ל-++C, ולא דיברת על #C. אוקיי. אם אתה אומר...
אני לא יודע איך VB מקמפלת בדיוק את הקוד, ומה היא דוחפת לתוכו. אם היא מקמפלת אותו ל-NATIVE לחלוטין בלי שום תוספות, אז תיאורטית היא יכולה להגיע לרמת הביצועים של ++C - אמנם לא כמו קומפילציה דרך VTUNE, אבל יותר טוב מ-#C.
 

MotiAd

New member
איטי הרבה יותר...

אני יכול לתת אינדיקציה במיוחד לגבי תוכניות גרפיות שמשלבות בתוכן DX ולא. ++C ו-VB עובדות באותה המהירות עד כמה שלאנשים מסויימים זה ייראה מוזר מאוד. #C נופלת מהם בביצועים בהרבה מאוד (בהפרשים של 10-20 FPSים שזה מאוד מאוד משמעותי). אפשר לעשות בנצ'מארק גם לדברים אחרים.
 

nu shoin

New member
אני חושב שאתה טועה

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

MotiAd

New member
אתה טועה...

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

nu shoin

New member
דיברת על FPS

לכן בתוכנית שלך יש לולאה המבצעת קריאות מערכת יקרות. אני לא מתיימר להבין ב VB.NET,יכול להיות שאתה צודק. תנסה להריץ את התוכנית בלי קריאות מערכת (שימוש ב DX כתיבה/קריאה לקבצים/מסך), מהניסיון שלי יש הבדל גדול, אבל שוב, אולי אני טועה.
 

MotiAd

New member
מה שקורה שם זה בערך ככה:..

יש קלט שנכנס רק בהתחלה של התוכנית, ועליו אין מה לבדוק איך הוא מתבצע הן ב-++C וב-VB.NET. הזמן שהקלט נכנס לא ממש משנה. בכל מקרה, על הקלט הזה מופעלות פונקציות ומניפולציות מתמטיות כבדות ביותר עם חישובים מכל הסוגים כמעט והשימוש בספריות מערכת קטן ביותר. אין בכלל גישה לקבצים וכו'. הפעולות היחידות עם ספריות הן של DX בשתי השפות, בכתיבה למסך, והפונקציות הן אותו הדבר בעיקרון (המימוש שונה, כי כל מה שקשור ל.NET עובד עם ספריה של DX שנקראת MANAGEDDX ו++C המקורית עובדת עם הספריות המקוריות של DX. אבל גם #C עובדת עם MANAGEDDX.
 

vinney

Well-known member
שאלה קצת לא מוגדרת

תלוי במה אתה מתעסק למשל בעבודה עם גרפיקה, אפליקציות VB ו ++C משתמשות בפחות או יותר אותן ספריות, כך שזה לא משנה. עיבודים שאתה בעצמך כותב לעומת זאת יהיו מהירים פי כמה וכמה ב ++C (הכוונה למודולים שלי ממשק). מבחינת VB.NET ו #C, אז זה לא ממש משנה, כי זה מתקמפל לאותו קוד, פחות יעיל מ++C בהגדרה בגלל GARBAGE COLLECTION ו JIT.
 

scalla

New member
האמת ש...

השאלה היתה על #C ביחס לVB מה יותר איטי. אני יודע שיש כל מיני דברים דיבילים ב #C כמו אתחול מערכים ל0 באופן אוטומטי (שלא לדבר על דברים אחרים), אבל היא יותר נוחה לדברים """ריציניים""" שאני מעדיף לעשות בC או ++C.
 

עידו123456

New member
לא דבילי אבל

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

HaRmosh

New member
בזה אתה צודק, אם כי אני מאמין

שההבדל בין לשים 0 לבין זבל די זניח.
 

gmorphus

New member
נראה לי

שההתעסקות היא דבילית אבל בכל זאת: יש הבדל מאוד גדול בין לשים אפס ל"לשים" זבל. זבל אתה לא לא שם וכדי שיהיו אפסים בתאים צריך לעבור למעשה תא-תא ולשים בתא הזה אפס. בעיה רצינית נוספת לדעתי עם C# זה העובדה שלמעשה הסביבה מספקת מעקב אחרי כל הקצאה וזאת למטרות שחרור - garbage collection.
 

selalerer

New member
זבל אתה לא שם, אתה פשוט משאיר את

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

HaRmosh

New member
אם תקראו טוב, לא רשמתי

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