Re: [閒聊] 遊戲玩太久會卡的原因

看板 C_Chat
作者 kirimaru73 (霧丸)
時間 2024-05-02 12:41:36
留言 5則留言 (4推 0噓 1→)

用圖書館來比喻電腦/手機程式 儲存空間(硬碟、記憶卡)中的資料就是書架上面的書 如果你有事要在圖書館處理,那這些書中應該會有你需要的資料 但是一般情況下,你沒辦法直接在書架上面看書 所以你會申請一個閱讀用的座位(記憶體) 把你需要的書拿到座位上(把硬碟中的資料移動到記憶體中) 然後就在你的座位上把事情辦完(執行程式) 並在不需要這些資源後把書和座位歸還回去 不過這裡和現實有點差別,儲存空間中的資料其實算是複製一份到記憶體中的 也就是已經被你借到座位上的書,其他人其實也可以借 那我們就假設這些書都是魔法書,你借走之後書架上會自動出現副本好了 反正書架上會發生的事情並不是這個比喻的重點 (你把書隨意塗改害到別人這件事也先不提,這是另外一方面的問題) 如果你要執行的是複雜的大型工作,需要的書可能有上百本 那你就會申請一大片座位,把一大堆接下來可能要用的書都先借過來 某本書你如果剛查閱完,但是在可預見的未來還會使用,你也不會想先還回去 複雜的現代遊戲都是這種規模的工作,才能放入一堆吸引人的要素 再仔細一點來說,整個工作過程應該會像這樣: (1) 申請一大片相鄰的座位,借一百本書放好,開始工作 (2) 有新的需求,再申請一小片相鄰的座位,借五十本書放好,執行需要的任務 (3) 這三十本書應該不需要了,先把它們還回去,並退掉對應的座位 (4) 又有新的需求,再申請一小片相鄰的座位,借五十本書...... ... (N) 所有任務完成,歸還手上所有的書和座位,離開圖書館 到這裡為止,其實還看不出問題 如果所有程式都都正常地運作,那理應不會有越來越慢的毛病 只是當太多個大型程式一起跑時,會超出整個系統負荷的上限而已 哪些情況會出問題?最常見的就是應該還的書沒有還 前面提過,書架上的書都會自動出現副本,所以不是別人借不到的問題 問題是你把書擺在你申請的座位上,座位上還有東西,無法讓給其他人使用 應該要還的書沒有還的理由可能有這些: 1. 我就是習慣不好,只關心我自己的工作,沒在管應不應該還 2. 我知道要還,我也以為我有還,但是不知為何我沒有還 3. 我因為一些嚴重理由被趕出圖書館了,工作人員不知為何沒有清出我用過的位置 當座位被這些沒有還的書佔據時,前面提過申請「相鄰座位」的行為就會變得困難 如果你真的需要五個座位來工作,正常人都會想要五個位置相鄰吧? 要是圖書館給你安排相差很遠的3+2個座位,你工作又非做不可 那過程想必會十分辛苦,這個概念即使在電子程式中也是相同的 除了工作進行時會累死人以外,光是要把五個座位才夠放的書分散放好就很麻煩了 而複雜的程式中「有新的任務,需要額外申請座位和借書」的次數又相當頻繁 時間一長,再搭配上「為什麼沒有還書」的鬼故事,需要的座位就會越來越分散 而程式又沒有人類的感情,當座位分散到已經無法容忍時,它還是會老實執行任務 所以看似同樣的重複任務,效率就會變得越來越低下 當座位已經確定不夠了,需要這些座位才能運作的程式可能就會崩潰了 然而,經由被拷打的工程師所拷打而成的專業程式,可能會具有比較強的心理素質 即使面對明顯不足的資源,他們仍會被要求用自己的能力極限去完成工作 這時候就會出現各種不可預期的靈異現象,甚至在工作時打翻其他人座位上的咖啡 好,講出問題的原因了,那接下來應該要探討怎麼去解決這個問題 「需要用的書只要用完了就要馬上還」,這是非常合理且容易理解的觀念 任何正經的程式設計課程,以及具一定規模的工程師團隊,都會再三強調這個好習慣 許多企業甚至會要求寫過的程式碼必須讓另一個工程師檢查過 部分明顯的錯誤或是新人的壞習慣,確實用肉眼就可以抓出並要求改正 (這不是理想世界,這是現實,真的有這種機制,而且在大型企業中很常見) 然後為什麼不還書的問題應該已經困擾了人類50年以上,我自己則差不多有15年 明明就是小學生都能理解的好習慣,為什麼一天到晚就有人要違反呢? --
※ 批踢踢實業坊(ptt.cc), 來自: 123.240.232.168 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1714624898.A.E5F.html

farseer7: 這篇好好理解 05/02 12:44

Hosimati: 阿就懶得還呀,搞不好明天就會用到 05/02 12:46

marx93521: 我還了啊 只是不知道為什麼還在位子上 05/02 12:47

tw15: 我要走了 我拿了書 我還了書 櫃檯接過了書 但書還在座位上 05/02 12:51

tw15: 電子邏輯 05/02 12:51

您可能感興趣