2007年8月23日 星期四

PS3 OS

根據Innerbits報導, PS3在之前給開發廠商的1.8版SDK中, 對於作業系統所使用的記憶體釋出上, 又更進一步的由原先佔用的52MB, 變成48MB, 顯示記憶體由原先佔用的32MB, 縮減成24MB...在PS3發售之初, 我聽到的消息是作業系統需要佔用64MB, 到現在總共釋出了16MB的空間出來, 而VRAM釋出8MB, 對開發者而言是個好消息...

雖然之前就已經知道作業系統需要用掉主記憶體64MB, 當時我天真的認為, 剩下的192MB如果開發商好好使用應該是夠的, 但看了報導之後, 才知道192MB是多麼的不夠用...也才知道為什麼大多數的跨平台作品中, PS3的總是比較差, 不是貼圖差就是缺功能...

在Innerbits有一篇探討PS3記憶體腳印(footprint)的報導裡, 裡面描述了當時1.6及1.8版SDK記憶體的使用情況...

1. 1.6版時記憶體佔用數由56MB下降到52MB, 而1.8版則下降至48MB...
2. 1.6版時顯示記憶體佔用數為32MB, 而1.8版則下降至24MB...
3. 1.6版以後, 使用訊息對話盒(Message Dialog)不用額外的記憶體, 但使用on-screen鍵盤則需要額外的7MB記憶體...
4.若要使用遙控遊玩(Remote Play)的功能, 則需要8MB的記憶體支援
5.使用標準儲存載入記憶的介面則需要5MB的記憶體支援
6.要使用網路對戰功能時, 則需要8MB的記憶體支援
7.要使用好友列表功能, 包含新增, 刪除, block, 則需要24MB的記憶體支援(1.8版則縮減到16MB)
8.要支援6個人的視訊通話時, 則需要26MB的記憶體支援(1.8版則縮減到20MB), 使用語音通話時, 則需要8MB的記憶體支援, 如果要加上系統內麥克風的設定支援, 則還要加上8MB
9.如果要使用in-game網路瀏覽器的話, 則需要40MB~90MB以上的記憶體, 記憶體消耗的程度依開啟網站的複雜度及tag數有關...
10.新增的螢幕抓圖輸出到照片資料夾內的功能, 則需要3MB的記憶體支援
11.新增的遊戲內自定音樂的功能, 則需要12MB的記憶體支援
12.新增的使用PSP當第二螢幕的功能, 則需要8MB的記憶體支援

最先我以為PS3那佔用的64MB, 已經包含了所有的支援功能, 而剩下的192MB完全屬於開發人員自由使用, 但事實上並非如此, 所以我嘗試以一個遊戲開發者的角度, 來試著考慮使用的作業系統功能與遊戲剩餘空間的平衡度...

1.以1.8版的SDK來用, 一個固定的消耗為48MB的作業系統空間
2.遊戲記憶管理功能要5MB(非固定消耗, 要儲存或讀取時才會用到)
3.對應遙控遊玩8MB(可捨棄)
4.對應第二螢幕8MB(可捨棄)
5.網路對戰8MB
6.支援好友列表16MB
7.支援麥克風設定8MB
8.支援線上交談功能8MB
9.自定音樂12MB
10.螢幕抓圖3MB(可捨棄)

其他功能捨棄不用, 以一個遊戲在執行的時候, 其基本消耗就有100MB, 這還不包含記憶管理及可捨棄的部分, 剩下的主記憶體只有156MB可用, 在顯示記憶體不能用來執行程式的情況下, 比起360的統一記憶體架構, 可用的主記憶體少很多, 如果所有的功能都要支援, 都可隨時叫用, 以上全部需要佔用124MB的記憶體, 若是使用1.6版以前的SDK, 則情況更慘...就一個遊戲用的作業系統而言, 這樣的架構非常不合理...反觀360則固定佔32MB的記憶體, 而且所有功能都已提供, 使用時沒有額外的消耗...我只能說SCE你還太嫩了....難怪in-game XMB那麼困難實現, 一堆廠商唉說難開發...

不過OS所佔用的記憶體是如此肥大, 且使用系統功能對於記憶體饑渴的程度超乎想像, 這可能有以下的原因...

1.使用64-bit的模式編譯作業系統程式碼, 導致程式碼佔用的空間過大, 卻沒什麼功能
2.開發OS之初, 由各個部門的人分別開發, 在統合方面做的不好, 導致系統內有很多的重複功能沒有剔除
3.SCE在開發OS方面的經驗不足夠, 所以系統程式碼沒有最佳化...
4.PS3一開始規劃的主記憶體, 原本是512MB(據說開發機的主記憶體就是512MB)

在看到SCE改進作業系統記憶體消耗方面的努力, 是值得鼓勵的, 不過整體而言, 仍然消耗太多的記憶體, 或許當初PS3真的應該配備512MB的記憶體, 而不是現在的256MB, 如此記憶體饑渴的問題就不會這麼嚴重, 而in-game XMB也老早就做好了...SCE應該好好的將OS內的各部分加強整合, 並加強記憶體節省的努力, 使用系統內建功能不應需要那麼多的額外記憶體才是, 如果系統真的是用64-bit進行編譯的, 改用32-bit應該會有記憶體縮減的效果, 而執行效能可能也不會差太多(以系統功能而言)...

或許開放遊戲程式使用虛擬記憶體, 亦或者將PS3作業系統本身的佔用空間, 進行虛擬記憶體的swap, 而功能所需使用的額外記憶體, 也採用虛擬記憶體的方式提供, 也是一個不錯的解決方案, 不過效能就變成了更重要的考量了...

加油吧~~SCE~~

沒有留言:

張貼留言