nsdemu+horse、SnortやirisでのDM表示が他のNIP-07プラグインに比べるとちょっともっさりかなー?ということで、性能を調べてみることにしました。RP2040上で動作するnsdemuのビルド条件を色々と変更し、テスト用のコードはこんな風に手を入れて[署名とDM暗号化用の鍵生成]×1000回にかかる時間を測定してみます。
・ECMULT_WINDOW_SIZE=2, ECMULT_GEN_PREC_BITS=2
- すべてQSPI FlashROM上に置く
- 2m26.652s
- secp256k1_ecmult_gen_prec_table[]のみSRAM上に置く
- 2m19.443s
・ECMULT_WINDOW_SIZE=2, すべてQSPI FlashROM上に配置
- ECMULT_GEN_PREC_BITS=4
- 2m4.065s
- ECMULT_GEN_PREC_BITS=8
- 3m3.592s
・ECMULT_WINDOW_SIZE=2, pico_set_binary_type(nsdemu copy_to_ram)ですべてSRAM上に配置
- ECMULT_GEN_PREC_BITS=2
- 2m7.943s
- ECMULT_GEN_PREC_BITS=4
- 1m46.804s
すべてをSRAM上に載せることで一番高いパフォーマンスを得ることはできるものの、貴重なSRAMを大量に使うことで後々の拡張を妨げる可能性があるのは心配です。一方、QSPI FlashROMの空き容量は十分ありますから、まずはECMULT_GEN_PREC_BITS=4とする程度で様子を見ることにします。
この性能が本家NSDに対してどの程度違うかはよく分かりません。NSDに使われているTTGO ESP32は240MHzのXtensa LX6 dual-coreなので、なんとなくですがRP2040(Cortex-M0 dual-core, 125MHz)の方が低い気がします(250MHzへのオーバークロックについては考えません)。
OpenBSD-7.2の時はどうにかしてEmacs-27.2を使っていたものの、OpenBSD-7.3へ移行してからは観念してEmacs-28.2へ移行しています。とはいえ…
フォントの設定、色々試してみたんですが現状では.Xdefaultsにemacs*font: VL Gothic-9.5を書いてこんな感じです。他のサイズ(9もしくは10)だとレイアウトが崩れてしまい見るに耐えないのですが、9.5なら今までとあまり変わらない感覚で使えています。今まではa14/k14を使っているので(emacs -nwでの実行例ですが大体こんな雰囲気です)
このパキッとした表示に慣れているとどうもアンチエイリアスの効いたベクトルフォントでコードを書く気にはなれません。仕事場のWindows機では「アンチエイリアスの効いたベクトルフォント」で事務作業を日々していても、です…
どうしたもんでしょうかね。頑張ってEmacs-27.2を使い続けるべきなのか、Emacs-28.2でa14/k14が使えるような設定を探すか。57.0kg(20:05)