קרנל ו-++C...

MotiAd

New member
ברור לי אבל...

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

roterl

New member
ואחר-כך תתחיל לממש הורשה באסמבלי?

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

roterl

New member
בעיקר זמן...

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

אלדד28

New member
אז ככה.

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

erezsh

New member
אבל עדיין

דברים בהם היעילות חשובה, לדוגמא לינוקס או openGL, עדיין נכתבים ב-C.
 

אלדד28

New member
שטויות במיץ עגבניות.

1. DirectX שאינה נופלת מ-OpenGL ולמעשה כבר נחשבת ליותר מהירה כתובה כולה לא סתם ב- ++C אלא ב-COM. 2. לינוס, כאמור, שחרר קרנל שכתוב ב - ++C אבל לא רצה להפיץ אותו כי הקומפיילרים לא היו מספיק טובים בזמנו. היום זה כבר רחוק מלהיות המצב.
 

voguemaster

New member
רק נקודה לגבי OGL

עדיין יש לה כמה יתרונות על DX. אחד הבולטים הוא יעילות רינדור הפוליגונים שלה. אתה מוזמן לבדוק בסצינה מורכבת (או חצי מורכבת להתרשמות טובה) את ההבדל בין עבודה עם מקס ב-OGL ועבודה עם DX בתור viewport renderer. הבדל לא קטן בכלל! אבל עדיין DX טכנולוגיה חדשה יותר ותומכת ביותר שטיקים
 

אלדד28

New member
אני לא יודע נתונים מדויקים,

אבל אני כן יודע שהסתכלות על תוכנה שמשתמשת בזה ומשתמשת בזה והסקת מסקנות לגבי הספריות שמתחת - זה לא בדיוק מחקר מדעי
אולי את DX הם מימשו ממש רע?
 

erezsh

New member
רוב החלקים הקריטיים DirectX

כלומר כאלה שהיעילות קריטית בהם, לא כתובים לא ב-C++ ולא ב-COM, אלא באסמבלי. אבל זה כבר נושא אחר.
 

אלדד28

New member
ברור. WHAT'S YOUR POINT?

כמו שאמרתי, אפליקציות תובעניות נהוג לכתוב ב - ++C עם קטעים קריטיים באסמבלי.
 

erezsh

New member
MY POINT

שלהגיד ש-DirectX נכתבה ב-C++ והיא עדיין מהירה, זה לא נכון, כי המהירות מתקבלת ע"י שימוש באסמבלי, שהוא כידוע לך לא קשור ל-C++.
 

אלדד28

New member
אתה פספסת את הנקודה.

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

אלדד28

New member
אתה אומר את זה, כי עבדת על קוד של

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

erezsh

New member
אם אתה מדבר על HL

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

אלדד28

New member
תקווה עד מחר,

אני לא ראיתי עדיין את המשחק שלא יצא, אבל כן ראיתי DEMO-ים מרשימים ביותר וממש לא איטיים
 

erezsh

New member
האמת, אפשר להתווכח עד מחר

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

אלדד28

New member
אה, נכון, אתה צודק ../images/Emo6.gif

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

voguemaster

New member
זה לא ממש מדויק גם כן

המהירות תהיה טובה בכל מקרה. משתמשים באסמבלי אך ורק כדי לבצע אופטימיזציות ל-3DNOW ו-SSE1/2. זה נותן שיפור בביצועים באחוזים משתנים, בהתאם לאלגוריתם. בוא נגיד, האלגוריתם שהכי מרוויח מזה (שכחתי את שמו, משהו בעיבוד תמונה) מרוויח 40% שזה יפה מאוד, אבל להגיד שהמהירות מתקבלת רק בגלל האסמבלי זאת הגזמה פראית... DX היה מהיר גם בלי אסמבלי אבל האופטימיזציות פשוט משפרות, אין מה לעשות. אתה מציג את זה כאילו קוד ב ++C ללא אופטימיזציות באסמבלי לא ירוץ מהר. זאת שטות גמורה. הרבה לפני 3DNOW ו-SSE היו משחקים תלת מימדיים גם בחומרה וגם בתוכנה והם עבדו מצוין!! קבל קצת פרופורציות. אופטימיזציות זה טוב, אבל זה לא הדבר היחיד שנותן מהירות ל-DX או לכל אפליקציה אחרת. זה המשך ישיר של הדיון שהיה עם גיא בזמנו על MMX...
 
למעלה