各種容量制限をユーザーが自由に大きな値No.38269
fzok4234 さん 20/06/23 05:00
 
現在の秀丸エディタには以下のようなメモリの容量制限があります。64bit版秀丸エ
ディタの場合です。


編集可能な最大行数                   : 最大1億
マクロ変数の上限                     : 最大64MB
メモリを使用する最大サイズ           : 最大2000MB
瞬間起動のリサイクルする数           : 最大30
やり直しバッファサイズ               : 最大10240KB
クリップボード履歴のサイズ           : 最大999KB

テンポラリファイルの個数             : 20
クリップボード履歴の件数             : 100
複数行コメントの入れ子の段数         : 8
強調表示のバッファサイズ             : 128KB
強調表示の文字数                     : 3999
マクロの登録ファイル名の文字数       : 259
行マークの個数                       : 256
検索/置換/grepの文字列の文字数       : 4095
grepで検索可能なファイルパスの文字数 : 259
マクロの文字列リテラルのサイズ       : 64KB
マクロの現在の秀丸エディタ用静的変数 : 32KB
マクロの共有用静的変数               : 4KB


最近では使用されているWindowsの大半が64bit版であり、数万円程度の非力なPCでも
64bitのOSが
何とか使えるよう、RAMが4GBはあります。もちろん、64bit環境でのRAMの最大容量の
理論値は
18,446,744,073,709,551,616Byte(約172億GiB、1680万TiB、16EiB)もあり、ここまで
に至る容量の
PCは現存しないとはいえ、最新のマザーボードのRAMの最大容量でも128GBはあります。

このような現代の情勢からみると、64bit版秀丸エディタにおける上記の容量制限は
かなり窮屈な
ものとなっています。一部の町工場の工作機械の制御用PCにあるようなWindows 7以
前の古いPCで
32bit版秀丸エディタを使用している場合はともかく、現在主流のPCの大半のユー
ザーにとっては
ちょっと厳しめの制約を嵌められているような感じです。

当方においても物理RAMは32GB積んでいるため、上記の制限値をより大きな値に設定
したいところです。
64bit版秀丸エディタに限定して、上記の制限値を「動作環境」から自由にカスタマ
イズできるように
することを要望として挙げさせていただきます。

もちろん、上記の値の中には大きくするとCPUやGPUの負荷が大きくなってしまうもの
もあることや、
物理RAMの容量を超えるような余りにも巨大な値を設定するとたちまちページングフ
ァイルへの
アクセスが生じて動作が極端に重くなってしまうこともあるため、ユーザーは細心の
注意を払って
設定を変更する必要があります。CPUやGPUの負荷にかかわる項目を大きくしたり、物
理RAMの容量の
半分以上のByte数を入力しようとしたときに、警告のメッセージを表示するようにし
た方が良い
と思います。


[ ]
RE:38269 各種容量制限をユーザーが自由にNo.38271
秀丸担当 さん 20/06/23 09:48
 

確かにメモリ使用関係のものは、もっと大きくできたらいいものがあると思います。
32bitでは難しくて64bitじゃないと問題になるのは「編集可能な最大行数」ですが、
これは既に64bit版で別設定になっています。
内部的な処理方法の都合もありますが、実際に使用するメモリよりも、アドレス空間
の確保が32bitでは逼迫していて、別にしています。
それ以外の多くは、たぶん32bit版でも共通の設定にしても影響は少ないと思います。
(単純に増やすことが難しいものもありますが)
やり直しバッファやクリップボード履歴のデフォルトや上限は増やしてもいいかもし
れません。
できるものから検討しようと思います。

[ ]
RE:38271 各種容量制限をユーザーが自由にNo.38273
fzok4234 さん 20/06/23 10:36
 
回答ありがとうございます。今後のアップデートでこれらの制限値が自由に設定でき
るようになるの
はありがたいことです。

そこで、恐縮ながら追加の要望なのですが、マクロの実行時点におけるこれらの設定
値を「内部的な
値を表現するキーワード」として取得できるようにしていただければ大変助かります。
現時点では、
使用している秀丸エディタのバージョンに応じてこれらの制限値をマクロ中にハード
コードしなければ
なりません。例えば、v8.92 64bit版における「検索/置換/grepの文字列の文字数」
は4095文字の
固定値となっておりますが、マクロでsetsearch文などで検索文字列を指定するときに、

if ( strlen( $string ) >= 4095 ) {
    message "検索文字列の上限を超えました";
    endmacro;
   
}

などとして「4095」というマジックナンバーを使用して文字数チェックを行う必要が
あります。当然、
今後のアップデートでこの値が固定値として変更されるにせよユーザーが設定可能な
可変値になるにせよ
マクロ内にハードコードされた値を一々書き換えなければならなくなります。

そこでもし、設定値をキーワードまたは関数を使って動的に取得できればこのような
ハードコードによる
弊害は起きなくなります。設定値を動的に取得するためのマクロのキーワードまたは
関数の新設のご検討
よろしくお願いします。



[ ]
RE:38273 各種容量制限をユーザーが自由にNo.38275
秀丸担当 さん 20/06/23 17:29
 

各種上限の値を取得できる方法があったらいいと思います。
何らかの方法を検討しようと思います。
キーワードが増えまくるのも何なので、ちょっといい名前が思いつかないですが、ge
tmaxinfo()とか、パラメータで取得できるような方法にしようかと思います。

[ ]