持ち出しキット+sendmessageに時間がかかNo.03634
たけとり さん 09/09/05 18:51
 
いつもお世話になります。

さて、表題の通りなのですが、sendmessageを実行するとしばらく(30秒ほど)秀丸
が固まります。
固まるというよりは、処理に時間がかかっているという感じでしょうか。30秒ほどし
てから該当の処理を行っています。
OSがWindows XP sp2、秀丸はバージョン8(ベータ11で確認)でhidemaru.exeはコンパ
クトフラッシュ上で持ち出しキットともに利用という環境です。

定かではないのですが、バージョンが7の頃はそんなに時間がかかっていなかったよ
うな記憶があります。

ちなみに、この環境では、ファイル別設定とか動作環境も「OK」を押してからしばら
く(5秒程度)反応が返ってきません。

なお、別のPCになりますが、持ち出しキットを使っていない環境(秀丸はHDD)では、
バージョン8ベータ11でもほとんど時間はかかっていません。
また、openreg/closereg/writereg〜/envchangedは両方の環境とも時間はかかってい
ません。

多分、メディアへの書き込む速度の問題なんかもあるかもしれませんが、何かの参考
になればと思い報告いたします。

[ ]
RE:03634 持ち出しキット+sendmessageにNo.03635
たけとり さん 09/09/05 18:56
 
書き忘れていましたが、時間のかかる処理は
#i = sendmessage( hidemaruhandle(0), 0x0111, 0x015A, 0 );
というかんじのコードです。

[ ]
RE:03635 持ち出しキット+sendmessageにNo.03666
秀丸担当 さん 09/09/07 13:06
 

試しに持ち出しキットで確認してみましたが、そこまで時間がかかるのは確認で
きませんでした。
ネットワークドライブに置いて時間がかかるようにしてみたら、確かに通常より
遅いです。動作環境の変更で5秒もかかることはありませんでしたが、
HmRegIni.ini ファイルが肥大化していたら、そういうこともあるかもしれません。
動作環境で時間がかかるとしたら、[表示]→[ステータスバー]で切り替えても5
秒くらいかかるのではないかと思います。
#i = sendmessage( hidemaruhandle(0), 0x0111, 0x0159, 0 );
#i = sendmessage( hidemaruhandle(0), 0x0111, 0x015A, 0 );
#i = sendmessage( hidemaruhandle(0), 0x0111, 0x015B, 0 );
という感じで幾つも並んでいるとしたら、5秒×nで30秒かかることもあるか
もしれません。
そういうことだとしたら、いまのところ仕方ないです。
持ち出しキットを公式にサポートしない理由として、こういった遅くなることの
効率化をしていないためというのがあります。

ファイルタイプ別の設定が幾つもあるようでしたら、使っていないものがあった
ら減らしてみると多少効果があるかもしれないです。

[ ]
RE:03666 持ち出しキット+sendmessageにNo.03667
秀まるお さん 09/09/07 13:30
 
 横から失礼します。

 コンパクトフラッシュへの書き込みキャッシュを有効にする、という作戦で解
決するかもしれないです。

 (実際試した訳じゃないので間違ってたらみません)

 「コントロールパネル・システム」の「ハードウェア」ページの「デバイスマ
ネージャ」の「ディスクドライブ」配下にコンパクトフラッシュのドライブが出
てくると思うので、それのプロパティを開き、「ポリシー」ページ中の中の設定
を、「パフォーマンスのために最適化する」をONにする。

 ですけども…。


 詳しくは、「パフォーマンスのために最適化する」でgoogle検索すると出てく
るので、そちらも参考にしてみてほしいです。

 (危険性もアップするので)

[ ]
RE:03635 持ち出しキット+sendmessageにNo.03680
たけとり さん 09/09/07 17:12
 
お二方ともありがとうございます。
返信をまとめさせていただきます。

結論から申し上げますと、キャッシュは効果は(あったのかもしれませんが体感でき
るほどでは)ありませんでした。
それと、返信を拝見して同じPC上のHDDで試していないことに気づき、CF内にあるフ
ォルダ一式をHDDに移動してからsendmessage(1行です)/動作環境/ファイルタイプ
別設定などを実際にやってみたところ、瞬時に実行されました。
ということで、どうやら原因はCFのキャッシュ以外の何かっぽい感じです。
ただ、CFには秀丸のマクロを始め、様々な文章を保存してあり、頻繁に読み込み、書
き込みを(秀丸やその他のアプリケーションで)しているのですが、それらにおいて
は特に遅さを感じませんので、なんだか釈然としないものを感じています。

どちらにしても、ハードウェアがらみの問題のような気がしてきましたので、本件は
取り下げさせていただきたいです。

[ ]
RE:03667 持ち出しキット+sendmessageにNo.03681
秀まるお さん 09/09/07 17:16
 
 今さらですが、V7.xxだと遅くないということで、もしかしたらINIファイルへ
の書き込みアクセスの回数が、V8.00になって増えてしまった、ということがあ
るかもしれません。

 その辺、僕の方で(HmRegIni.dll側の担当ということで)テストしてみます。

 何か分かったらお返事させていただきます。

[ ]
RE:03680 持ち出しキット+sendmessageにNo.03686
秀まるお さん 09/09/07 19:26
 
 こっちの方にコメントさせていただきますと…。

 調べてみたら、「ファンクションキー表示」または「ステータスバー表示」の
コマンド実行で、INIファイルへの書き込みアクセスが何十回も発生していまし
た。

 V7.11でもテストしたんですが、それでも同じくらいの回数の書き込みが発生
しているようではありますが、どっちにしても、これはHmRegIni.dll側での処理
があまり正しくないせいで起きている物でした。

 ということでさっそく修正してしまいました。

 もしよかったら以下のURLからダウンロードして、解凍して出てくる
HmRegIni.dllを使って試してみてほしいです。

http://hide.maruo.co.jp/software/bin3/hmregini109test.lzh

 バージョン番号は1.09になってます。

 近々ちゃんとした正式バージョンアップもしたいと思います。

[ ]
RE:03686 持ち出しキット+sendmessageにNo.04047
たけとり さん 09/10/01 19:33
 
 自分の過去の発言を今し方検索していて、この件に関する一連のご返信に気づきま
した。
 1.09を早々にバージョンアップしていただいたのにもかかわらず、テスト報告もで
きず申し訳ありません。

> 近々ちゃんとした正式バージョンアップもしたいと思います。

 秀丸8ベータ18+持ち出しキット2.01で試してみました。
 試したのは、sendmessage(先日のと同じコード)、動作環境の変更(というかOK
ボタンを押下)、ファイルタイプ別設定(同じく)ですが、全て瞬時に処理が帰って
きました。
 また、読み込むときも(たとえばメニューから動作環境を選択してからダイアログ
に入力できるようになるまで)、以前のものより早くなったような気がします。
 さらに、「秀丸エディッタについて」で表示されるダイアログでもキットのバージ
ョンが表示されることを確認しました。
# あんなところをクリックできるようになっていたなんて、初めて知りました。(^-^)

 このたびのバージョンアップで、持ち出しキットがますます手放せなくりました。
 ありがとうございました。

 また、何かありましたらよろしくお願いします。
# サポート会議室がメール用と同じところとのことですので、以後はそちらで投稿
します。

[ ]