05/05/24 23:58:06 SzNPpPVX
>>41
理想(理論)と現実だいぶ違うから 夢から覚めなさい
EXCELで直接HDDに保存すると5秒経つまで次の処理を「Excel」は(で)行えない。
しかし俺のマクロはRAMDISKに保存後のHDDへのコピーは並列にやっており、
コピー指令だけ出せば、「EXCEL」は(で)次の作業を実行できる。
この次の処理までの時間が短いことが快適性や問題解決に必要なこと(はい、ここ重要ね)
バックでいくら重くても、ユーザー処理やマクロが実行できてれば問題ない(この処理では重くもないが)
つまり、たとえ(B)が全体で10秒かかろうとも(実際は(B)全体としても3秒程度で終わるが)
:EXCELの保存+『コピー指令』が0.5秒で終われば問題はまったくなく、この時間を提示している。
っていうかコピー指令は20ms程度で終わるから、無駄なくコピーするために今回はEXCEL-VBAでやったわけ。
もしコピー指令すら遅いのなら、RAMDISKからHDDへは
同期ソフト等の別アプリを使っても全然問題わけで(だから一般のアプリでもこのテクニックは使える)
つまりRAMDISKはパフォーマンスに思いっきり貢献している。
それどころか今回は1秒以内にEXCELでの保存を処理できないといけなかったため、
解決策としてはおそらく、限りなくベストだったわけだ(ちょうどアイオーデータのメモリが増設されてたし)
>>16M程度のアクセスで5秒もかかる骨董HDDを使っていては、それが足かせになって
RAMからHDDのコピーはシーケンシャルかつキャッシュが有効で、1,2秒で終わる(計りようがないが)
HDDは型式は知らないが、40Gプラッタのものだから十分な性能はあり問題ない。
システムとデータを分けてるし。
勝手な予想だけど、EXCELで直接HDD保存するときはランダムアクセスかつ実質キャッシュ無効になってるから時間がかかるだけ。
(本当の理由は知らないけど、今回扱ってるファイルに関しては現実に複数台のパソコンでそうなのだから仕方ない)
まあ、保存ファイルのサイズの割に保存処理の時間がかかるアプリならば(そういうものが現実に存在しており)
RAMDISKがきわめて役に立つことがあるっていう事例ですな。
う、長文になった…。
またまたそんな餌に…(ry