|
||||
|
||||
תיאוריה סבירה בהחלט. מעלה אצלי זכרונות מהימים בהם היינו עושים שמיניות באויר כדי לחסוך כל ביט בזכרון, ולא פחות חשוב, על הדיסק. לפעמים זה הגיע עד כדי שמירת התאריך בשני בתים: 7 ביטים עבור השנה ("באג אלפיים") 4 עבור החודש ו-5 עבור היום בחודש, עם כל הסרבול וההאטה המתחייבים. לא חשבתי שבימים אלה יש עוד מישהו שמגדיר משתנים בינאריים שתופסים פחות מארבעה בתים, אבל ייתכן שבמשרד הבריאות עוד מועסקים עובדים שרכשו את ההרגלים שלהם יחד איתי. |
|
||||
|
||||
בטח שיש עוד 'מישהו', גם אצלנו (במוצר שאני עובד עליו) כשיש כמות נתונים גדולה, להקטין משתנה מfloat (32 ביט) לשני בתים זו תרגולת רצויה ומועילה. יש היום גם אפשרות לfloat16, אבל עדיין לא נפוצה באופן גורף. |
|
||||
|
||||
כן, אני משער שפה ושם עוד מתייחסים לעניינים האלה, אבל מסופקני אם זה קורה במערכות BO כמו זאת עליה אנחנו מדברים עכשיו. א-פרופו פינת הנוסטלגיה: שנים אחרי כן, כשאחד מהצעירים בסביבתי אמר בנון-שלנטיות "אז נגדיר מטריצה של 100 מגה" כמעט התעלפתי. בשנים בהם קיבלתי את ההכשרה ובהן התגבשו הרגלי העבודה שלי התוכנית כולה היתה מוגבלת בגודלה למשהו כמו 256 K בתים. בעצם גם שנים אח"כ עוד עבדתי עם מערכת תוכנה אחת מעצבנת שהיתה בה הגבלה חמורה עוד יותר על גודל התכנית (אם כי שם המשתנים הוגדרו בנפרד, בשטח נוסף של 64K אאז"נ). ולעניין משרד הבריאות: איזה כיף יהיה אם יתברר שהתקלה נובעת מוירוס מחשבים! |
|
||||
|
||||
אני טוען מזה שנים1 שהגאונות ההנדסית של ביצועי התוכנות על מחשבי שנות השמונים עולה לאין ערוך על אלה של היום, כשכל תוכנה היא כמה ג'יגה בייט זכרון. אני בספק אם אפילו אחוזון יחיד מתוך מהנדסי התוכנה של היום מסוגלים לכתוב סימולטור טיסה שירוץ על מחשב עם 48K זכרון2. 1 ובטח מישהו תכף יחזק את זה בציטוט נשבח שלי מהאייל 2 איזה סימולטור, אפילו מחשבון הם לא יצליחו לכתוב על מחשב כזה. אולי Hello world. |
|
||||
|
||||
מספרם של אותם יחידי סגולה לא היה גבוה אז, ואני לא בטוח שהוא השתנה לרעה. כשנתקלתי לפני כמה שנים בפעם הראשונה בקטע הקידוד הזה (כמדומני בבלוג של גדי אלכסנדרוביץ'): float Q_rsqrt( float number ) המחשבה הראשונה שחלפה במוחי היתה שהשטח התקדם מאד מאז אותם ימים בהם היינו כותבים בקובול "add 1 to a". המחשבה השניה היתה שגם אז היו בטח כמה גאונים שתכנתו ברמה הזאת, ובעצם אולי אפילו הכרתי שטחית מי מהם. העובד הממוצע, אני בטוח שאין צורך להגיד, היה שש ליגות נמוך יותר. מה שכן, העבודה דרשה הכרות עם המחשב ברמה הרבה יותר קרובה לשפת מכונה מה שקורה היום: אמנם רוב הקידוד נעשה בשפות "גבוהות" - כלומר לא באסמבלר - אבל לא היו אמצעי ניפוי שגיאות מתקדמים, כך שנאלצנו לפענח תצלומי זכרון, מה שקרוי Dump.
{ 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; } |
|
||||
|
||||
אני לא נחתום, אז אעיד על עיסתי. לפני מספר שנים הייתי צריך לכתוב אפליקציה מורכבת למדי שלרשותה עמדו 64 KB של זיכרון RAM בלבד. התוכנה עצמה רצה מה-Flash שהיה קצת יותר גדול - 256 KB (למעשה כפול, אבל היו שם שני עותקים + Bootrom), אבל כל זכרון העבודה היה ה-RAM גם בגלל זמני כתיבה ארוכים וגם בגלל מגבלה על מספר מחזורי קריאה-כתיבה. היה לא פשוט והצריך פתרונות מחוץ לקופסה (למשל, חישוב של CRC בלי Look-up table). |
|
||||
|
||||
איזי, לא היה לנו לרגע ספק שאתה שם למעלה באחוזון העליון. |
|
||||
|
||||
משרד הבריאות הבריטי נהג לאסוף נתונים בקבצי CSV(!) ולעבד אותם באקסל(!!) בגרסא ישנה(!!!) שתמכה רק ב-64k עמודות. |
|
||||
|
||||
תיקון קל: שורות, לא עמודות. זה אחד מאותם דברים שלו היו קורים כאן היינו אומרים שזה יכול לקרות רק בישראל. |
חזרה לעמוד הראשי |
מערכת האייל הקורא אינה אחראית לתוכן תגובות שנכתבו בידי קוראים | |
RSS מאמרים | כתבו למערכת | אודות האתר | טרם התעדכנת | ארכיון | חיפוש | עזרה | תנאי שימוש | © כל הזכויות שמורות |