秀丸と秀丸メールでDirectWriteのパフォーNo.48700
ぴよ さん 15/10/23 12:35
 
秀丸と秀丸メールで「文字の描画」設定を同じにしても、秀丸に比べて秀丸メールで
は性能チェックの結果が低いようです。

・ClearType標準
・コントラスト50%
・ClearType30%
・文字間隔拡張0%

上記の設定でMSPゴシックでの性能チェックの結果を比較すると、秀丸が213%なのに
対して秀丸メールでは101%と出ています。

秀丸メールの方がDirectWriteの恩恵を受けにくい、と捉えておけばよいのでしょうか。

[ ]
RE:48700 秀丸と秀丸メールでDirectWriteNo.48701
秀まるお2 さん 15/10/23 13:18
 
 秀丸メールも秀丸エディタも、DirectWriteの処理はまったく同じで、性能
チェックの処理もまったく同じです。しいて違うとしたら、秀丸エディタと秀丸
メールのバージョンが同じくらいの時期の物じゃないと、多少処理が違うのがあ
るかなぁという程度です。

 213%対101%とかなり違うということで1つ思いつくのは、「プログラム互換性
アシスタント」ってやつのせいで秀丸メールの動作が遅くなってる可能性があり
ます。

 秀丸メールの中の、特にヒープっていうメモリ領域に関係して保護違反が発生
すると、「プログラム互換性アシスタント」ってやつが出てきて、そいつが、秀
丸メールで保護違反が出てもそれを回避させるような、特殊なこと(フォールト
トレラントヒープ)をします。それが働いてしまうと秀丸メールの、特に
DirectWriteの処理が極端に遅くなります。

 回避策としては、レジストリエディタで特定の値を削除する方法になります。

    http://zakkiweb.net/v3/1/8.shtml

 秀丸メールがヒープ破壊の保護違反を出す例としては、ATOKと併用しててって
例があります。ATOKはマルチスレッドアプリケーションと相性が悪くて、複数
スレッドでウィンドウを出してそれぞれのスレッドでかな漢字変換させるような
処理をすると、ごく希に(一ヶ月に1回とか)ヒープ破壊の保護違反を出します。
それのせいってことがあるかもしれません。ATOK2013の時にそういうことがあっ
たんですけども。

 どうでしょうか。

---------------------------
 それの他には…。

 もしかしたらフォントサイズが違うせいで性能差が出るとかってことはあるの
かもしれませんけども。

[ ]
RE:48700 秀丸と秀丸メールでDirectWriteNo.48702
秀まるお2 さん 15/10/23 13:22
 
 フォールトトレラントヒープのせいだとしたら、先ほどのURLの所にある情報
じゃなくて、

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\
     CurrentVersion\AppCompatFlags\Layers

 って所になるようでした。

 ここか、または先ほどのURLの先にある

HKEY_CURRENT_USER\Software\Microsoft\Windows NT\
     CurrentVersion\AppCompatFlags\Compatibility Assistant\Persisted

 か、両方チェックしてみてほしいです。

参照:
    http://www.maruo.co.jp/turukame/3/x07477_.html

[ ]
RE:48702 秀丸と秀丸メールでDirectWriteNo.48716
ぴよ さん 15/10/26 12:12
 
フォールトトレラントヒープ、確認してみましたがそのようなエントリはレジストリ
にありませんでした。

で、試しに秀丸を最新版に更新してみたところ、秀丸メール同様に遅くなりました。
秀丸8.52の頃では200%程度出ているのが、秀丸8.54では70%程度まで落ち込むようです。

※前回書いたときには秀丸メールが100%程度だったのでそれと比べると低いですが、
これは秀丸メールだけ64bit版を使っていたからのようです。32bit版の秀丸メール6.
46ではやはり70%になりました。

[ ]
RE:48716 秀丸と秀丸メールでDirectWriteNo.48720
秀まるお2 さん 15/10/26 13:17
 
 お手数かけてすみません。

 秀丸エディタのV8.52とV8.54とで比較テストしてみたら、たしかに性能差が明
らかに違ってでてきてしまいました。

 最近いじった機能としては「カラー絵文字対応」ってのがあるんですが、他に
もいろいろいじってるので遅くなったのかもしれません。詳しくテストしてまた
お返事させていただきます。

[ ]
RE:48720 秀丸と秀丸メールでDirectWriteNo.48722
秀まるお2 さん 15/10/26 15:06
 
 調べてみたら、秀丸エディタのVersion 8.54β9の時に遅くなってしまってま
した。

 その原因は、実は「源ノ角ゴシック Code JP Normal」ってフォントで文字が
乱れることがある対策のためでした。

 実は、当時は秀丸エディタ側で対処したんですが、後で、フォントの作者さん
にも問題が報告されて、結果、フォントの方でも対処されました。なので、今現
在は秀丸エディタの方で個別対応しなくても、文字が乱れることはありません。
なので、Version 8.54β9で入れた処理は外させていただきます。

 それで高速になることが確認できましたので…。

 とりあえず秀丸エディタのV8.56の次のβ版にて対応させていただきますが、
もし必要でしたら、HmDWrite.dllってファイルの修正版だけ個別提供させていた
だこくことも可能です。それを秀丸エディタのV8.54にインストールしていただ
ければ、Version 8.54側でも高速になります。

 ということでお願いします。

[ ]
RE:48722 秀丸と秀丸メールでDirectWriteNo.48724
ぴよ さん 15/10/26 15:21
 
ありがとうございます。
でしたら、βが出るまでは旧バージョンでしのごうかと思います。

ちなみにHmDWrite.dllだけ旧バージョンを使うのはまずいでしょうか?

[ ]
RE:48724 秀丸と秀丸メールでDirectWriteNo.48725
秀まるお2 さん 15/10/26 15:52
 
 とりあえず、急いで高速化したい、あるいはβ版じゃなくてVersion 8.54の正
式版で高速にしたいってこと用に、HmDWrite.dllのバグ修正版だけアップロード
しました。

32bit版:
http://hide.maruo.co.jp/software/bin3/hmdwrite_dll_32bit_forhidemaru_v854.zip

64bit版:
http://hide.maruo.co.jp/software/bin3/hmdwrite_dll_64bit_forhidemaru_v854.zip

 これを解凍して出てくるHmDWrite.dllを、秀丸エディタのプログラム用
フォルダに上書きコピーすれば直ります。

> ちなみにHmDWrite.dllだけ旧バージョンを使うのはまずいでしょうか?

 旧バージョンに戻しても動くことは動きますが、カラー絵文字関係で1つバグ
があるので、あんまりお勧めでは無いです。上記のDLLの方がいいです。

[ ]
RE:48725 秀丸と秀丸メールでDirectWriteNo.48730
ぴよ さん 15/10/26 22:56
 
HmDWrite.dllを置き換えることで、MSPゴシックは200%台に戻りました。

が、代わりにTahomaの数値が54%と出ました。
これも8.52では200%近く、8.54でも70%近く出ていたのですが・・・。

[ ]
RE:48730 秀丸と秀丸メールでDirectWriteNo.48731
秀まるお2 さん 15/10/27 08:35
 
 すみません。1つ報告し忘れてました。

 実は、この性能チェック自体にもバグがあって、Tahomaの時の性能が、実はMS
Pゴシック相当で計算されてしまってました。54%と出てきてる最新のデータが正
しいデータになります。

 200%近く出てたのは、MS Pゴシックでの本来の性能、
 70%近く出てたのは、MS Pゴシックでの、「源ノ角ゴシック Code JP Normal」
対応で遅くなった値でした。

 今現在のデータで間違ってないです。

 大変失礼しました。

[ ]