前回の続き。自作Binary Translation型RISC-Vエミュレータの最適化作業、いくつか改善を取り入れたのでflamegraphを用いて最適化の結果を解析する。現状の実装でflamegraphを適用した結果が以下となった。 これをよく見てみると、clone()が多く出てきていることが分かる。これはもしかしてCloneトレイトにより大量にオブジェクトのコピーが発生してしまっているということか?確かに、TCGの生成においてはかなり大量にCopyやらCloneを使ってしまっている。これを削減する必要があるということだろうか。 試しに、これまですべてのインスタンスをCopyで繋げていたものを、ポインタで繋げ直すとどのようになるのだろう?Rustでポインタを扱うのが非常に面倒なので、Rc<RefCell<>>を使って一気に書き直してみることにした。 例えば、今までこのように実装していたも
![自作Binary Translation型RISC-VエミュレータのTCG最適化解析 - FPGA開発日記](https://cdn-ak-scissors.b.st-hatena.com/image/square/3de06229c31b487499cfe06ffe701e43c1973f84/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmsyksphinz%2F20201208%2F20201208014735.png)