Google AdSense

2015年2月10日 星期二

我用 Python 寫的 Chip 8 模擬器成功作二號

進度

  • 只有最佳化版
  • 完成 100% 指令,不過還沒做測試,不確定會不會有問題

下載

需求

資源

心得

  • 不限速時,Python 3 下能跑出 22000 赫茲,PyPy3 則是 5500 赫茲。PyPy3 比 Python 3 慢應該是因為我用了 ctypes 去抓時間。雖然知道 PyPy 跟 ctypes 天生不合,但沒想到會這麼嚴重
  • 這是準備練習寫除錯器用的。如果這次除錯器執行起來效能像我用 Python 寫的 Atari 2600 模擬器失敗作一號一樣慘烈,那下次的 Atari 2600 模擬器就不會有除錯器

回顧

  • 後來我有嘗試把 ctypes 的部分改掉,但是 PyPy3 的速度只能達到 15000 赫茲,還是比 Python 3 慢。照理來說,模擬器因為有許多重複使用的函式,應該是非常適合 PyPy 加速才對。難道是因為 Chip 8 模擬器太簡單,導致 PyPy 本身為了加速所做的額外工作佔了太大的比例嗎?

沒有留言:

張貼留言