HSP の重いメモリノートパッド命令

HSP のメモリノートパッド命令や += 代入による文字列の足し算って重いんですよね。Module/修正版dirlist2 - HSP開発wikiのモジュールを自分の使いやすいように改造していたのですよ。マイドキュメントの中の1万ぐらいあるファイルを出力しようとしたら、 13 秒もかかりました。で、 noteget 命令を使わず、 getstr 命令にかえたりとか、 += 代入を poke にかえたら 1 秒以内に処理を完了したりとかして...

どういうのが重いかというと、HSP3ラウンジのぷまさんの書き込みにありました。引用します。

詳細な説明は あとでしますが、早いハナシ 大きなメモリをループ内で使う場合。。。

noteadd、notedel、a+=bという書式の文字列の足し算、は使わずにgetstr、memcpy、peek、poke、strmid命令などでスクリを書く。ということと、

メモリの自動拡張(自動増加)機能 これが できるだけ動作することがないように あらかじめ 想定できる大きなサイズのメモリを 明示的にsdim命令等で 確保しておく必要があります。(または HSPのメモリの自動拡張(自動増加)機能が動きだす前に memexpand命令を使って 自分で再確保します)

っということをすれば そこそこ高速になります。(1万倍とか。。。)

ということみたいです。引用元には「メモリーノートパッド命令の問題」や「メモリの自動拡張(自動増加)機能での 激遅の おハナシ」などの話も載っていますので、参考にしてみるといいでしょう。