בתשובה לשוטה הכפר הגלובלי, 19/01/22 10:42
באג 2022 745707
בטח שיש עוד 'מישהו', גם אצלנו (במוצר שאני עובד עליו) כשיש כמות נתונים גדולה, להקטין משתנה מfloat (32 ביט) לשני בתים זו תרגולת רצויה ומועילה.
יש היום גם אפשרות לfloat16, אבל עדיין לא נפוצה באופן גורף.
באג 2022 745708
כן, אני משער שפה ושם עוד מתייחסים לעניינים האלה, אבל מסופקני אם זה קורה במערכות BO כמו זאת עליה אנחנו מדברים עכשיו. א-פרופו פינת הנוסטלגיה: שנים אחרי כן, כשאחד מהצעירים בסביבתי אמר בנון-שלנטיות "אז נגדיר מטריצה של 100 מגה" כמעט התעלפתי. בשנים בהם קיבלתי את ההכשרה ובהן התגבשו הרגלי העבודה שלי התוכנית כולה היתה מוגבלת בגודלה למשהו כמו 256 K בתים. בעצם גם שנים אח"כ עוד עבדתי עם מערכת תוכנה אחת מעצבנת שהיתה בה הגבלה חמורה עוד יותר על גודל התכנית (אם כי שם המשתנים הוגדרו בנפרד, בשטח נוסף של 64K אאז"נ).

ולעניין משרד הבריאות: איזה כיף יהיה אם יתברר שהתקלה נובעת מוירוס מחשבים!
באג 2022 745718
אני טוען מזה שנים‏1 שהגאונות ההנדסית של ביצועי התוכנות על מחשבי שנות השמונים עולה לאין ערוך על אלה של היום, כשכל תוכנה היא כמה ג'יגה בייט זכרון.
אני בספק אם אפילו אחוזון יחיד מתוך מהנדסי התוכנה של היום מסוגלים לכתוב סימולטור טיסה שירוץ על מחשב עם 48K זכרון‏2.

1 ובטח מישהו תכף יחזק את זה בציטוט נשבח שלי מהאייל
2 איזה סימולטור, אפילו מחשבון הם לא יצליחו לכתוב על מחשב כזה. אולי Hello world.
באג 2022 745719
מספרם של אותם יחידי סגולה לא היה גבוה אז, ואני לא בטוח שהוא השתנה לרעה.

כשנתקלתי לפני כמה שנים בפעם הראשונה בקטע הקידוד הזה (כמדומני בבלוג של גדי אלכסנדרוביץ'):

float Q_rsqrt( float number )
{
long i;
float x2, y;
const float threehalfs = 1.5F;

x2 = number * 0.5F;
y = number;
i = * ( long * ) &y; // evil floating point bit level hacking
i = 0x5f3759df - ( i >> 1 ); // what the fuck?
y = * ( float * ) &i;
y = y * ( threehalfs - ( x2 * y * y ) ); // 1st iteration
// y = y * ( threehalfs - ( x2 * y * y ) ); // 2nd iteration,
// this can be removed

return y;
}

המחשבה הראשונה שחלפה במוחי היתה שהשטח התקדם מאד מאז אותם ימים בהם היינו כותבים בקובול "add 1 to a". המחשבה השניה היתה שגם אז היו בטח כמה גאונים שתכנתו ברמה הזאת, ובעצם אולי אפילו הכרתי שטחית מי מהם. העובד הממוצע, אני בטוח שאין צורך להגיד, היה שש ליגות נמוך יותר. מה שכן, העבודה דרשה הכרות עם המחשב ברמה הרבה יותר קרובה לשפת מכונה מה שקורה היום: אמנם רוב הקידוד נעשה בשפות "גבוהות" - כלומר לא באסמבלר - אבל לא היו אמצעי ניפוי שגיאות מתקדמים, כך שנאלצנו לפענח תצלומי זכרון, מה שקרוי Dump.
באג 2022 745720
אני לא נחתום, אז אעיד על עיסתי.
לפני מספר שנים הייתי צריך לכתוב אפליקציה מורכבת למדי שלרשותה עמדו 64 KB של זיכרון RAM בלבד. התוכנה עצמה רצה מה-Flash שהיה קצת יותר גדול - 256 KB (למעשה כפול, אבל היו שם שני עותקים + Bootrom), אבל כל זכרון העבודה היה ה-RAM גם בגלל זמני כתיבה ארוכים וגם בגלל מגבלה על מספר מחזורי קריאה-כתיבה.
היה לא פשוט והצריך פתרונות מחוץ לקופסה (למשל, חישוב של CRC בלי Look-up table).
באג 2022 745721
איזי, לא היה לנו לרגע ספק שאתה שם למעלה באחוזון העליון.

חזרה לעמוד הראשי המאמר המלא

מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים