私は現在、Javascript でエミュレーターを実装しています。エミュレートされたプラットフォームのメモリ モデルはかなり複雑です。そのため、次のように関数の配列を介して読み取りと書き込みを行っています。
var MRead = [];
ReadBiosSpace = function(addr) { return (EnableBios ? BIOS[addr] : ROM[addr]); };
for (i = 0; i <= 0xFF; i++) { MRead[i] = ReadBiosSpace; };
function Read(addr) { return MRead[addr](addr); };
明らかに、読み取り関数と書き込み関数は非常に頻繁に呼び出されるため (少なくとも命令ごとに 1 回、主な実行はOperators[Read(ProgramCounter)]()
)、パフォーマンスに非常に敏感です。
実行できるパフォーマンスの最適化はありますか? これは最良の方法ですか?