Stack Size/ja: Difference between revisions
Line 40: | Line 40: | ||
強力かつ柔軟な能力を持つマクロになってくると、標準のスタックサイズの限界に達するので、ユーザーはスタックサイズを相応しい容量まで引き上げることになる。 | 強力かつ柔軟な能力を持つマクロになってくると、標準のスタックサイズの限界に達するので、ユーザーはスタックサイズを相応しい容量まで引き上げることになる。 | ||
===. | ===.BAT や .SH でのスタックサイズの設定=== | ||
<!-- Setting the Stack Size in a .BAT or .SH File --> | <!-- Setting the Stack Size in a .BAT or .SH File --> | ||
<div style="color:gray">One of the ways to start MapTool is via the various ''batch files'' that are included when you download and unzip a copy of MapTool. These files are called things like '''Launch Maptool-512M-Memory.bat''' (for Windows machines) and '''Launch MapTool.sh''' (for Linux). The number in the filename indicates the amount of ''main memory'' allocated to MapTool. The contents of these batch files looks like:</div> | <div style="color:gray">One of the ways to start MapTool is via the various ''batch files'' that are included when you download and unzip a copy of MapTool. These files are called things like '''Launch Maptool-512M-Memory.bat''' (for Windows machines) and '''Launch MapTool.sh''' (for Linux). The number in the filename indicates the amount of ''main memory'' allocated to MapTool. The contents of these batch files looks like:</div> | ||
MapTool を起動するには、ダウンロードしZIPファイルを展開した MapTool に含まれる数種類の''バッチファイル''を利用する方法がある。これらのファイルは'''Launch Maptool-512M-Memory.bat'''(Windows用)や'''Launch MapTool.sh'''(Linux用)といったファイル名になっている。ファイル名の数値は MapTool が確保する''メイン・メモリーの容量''を指している。これらのバッチファイルの中身は次のようになっている: | |||
{{code|javaw -Xmx512M -Xss512K -jar maptool-*.jar run}} | {{code|javaw -Xmx512M -Xss512K -jar maptool-*.jar run}} | ||
<div style="color:gray">The critical pieces here are the ones that begin with {{code|-X}}. The first, {{code|-Xmx512M}} indicates how much main memory (in this case, 512MB) is allocated to the Java virtual machine. </div> | <div style="color:gray">The critical pieces here are the ones that begin with {{code|-X}}. The first, {{code|-Xmx512M}} indicates how much main memory (in this case, 512MB) is allocated to the Java virtual machine. </div> | ||
ここで重要となる点は{{code|-X}}で始まる部分だ。一つ目の、{{code|-Xmx512M}}はJava仮想マシンがどれほどメイン・メモリーを予約するかを表している(この場合は512MB)。 | |||
<div style="color:gray">The second, {{code|-Xss512K}} is how much memory is allocated to the stack (the "ss" is for "stack size"). </div> | <div style="color:gray">The second, {{code|-Xss512K}} is how much memory is allocated to the stack (the "ss" is for "stack size"). </div> | ||
二つ目の、{{code|-Xss512K}} はスタックがどれ程のメモリーを予約するか、ということだ(「ss」は「スタック・サイズ(stack size)」のこと)。 | |||
<div style="color:gray">In versions of MapTool prior to 1.3.b54, the {{code|-Xss512K}} is absent. To set the stack size allocated (overriding the defaults that are picked by Java or the value indicated), do the following:</div> | <div style="color:gray">In versions of MapTool prior to 1.3.b54, the {{code|-Xss512K}} is absent. To set the stack size allocated (overriding the defaults that are picked by Java or the value indicated), do the following:</div> | ||
バージョンが1.3.b54より古い MapTool では {{code|-Xss512K}} は欠けている。確保するスタック・サイズを設定する(Javaが設定する初期値を上書きする)方法は下記の通り: | |||
<div style="color:gray">1. Open the batch file in a text editor like Notepad.</div> | <div style="color:gray">1. Open the batch file in a text editor like Notepad.</div> | ||
1. バッチファイルをメモ帳などのテキストエディターで開く。 | |||
<div style="color:gray">2. Edit the {{code|-Xss512K}} line to be another value, for instance, {{code|-Xss1M}} or {{code|-Xss2M}} (M is for megabytes, K is for kilobytes).</div> | <div style="color:gray">2. Edit the {{code|-Xss512K}} line to be another value, for instance, {{code|-Xss1M}} or {{code|-Xss2M}} (M is for megabytes, K is for kilobytes).</div> | ||
2. {{code|-Xss512K}}の部分を、{{code|-Xss1M}}や{{code|-Xss2M}}などの異なる値に書き換える(M はメガバイト、K はキロバイトを意味する)。 | |||
<div style="color:gray">3. Save the file, and then start MapTool using that batch file.</div> | <div style="color:gray">3. Save the file, and then start MapTool using that batch file.</div> | ||
3. ファイルを保存し、このバッチファイルを使い MapTool を起動する。 | |||
<div style="color:gray"><font color="red">'''WARNING'''</font>: When you are changing the stack size, the best settings are usually 512K, 1M, or 2M. <font color="red">'''DO NOT set it to 512M'''!</font> That will cause Bad Things to happen.</div> | <div style="color:gray"><font color="red">'''WARNING'''</font>: When you are changing the stack size, the best settings are usually 512K, 1M, or 2M. <font color="red">'''DO NOT set it to 512M'''!</font> That will cause Bad Things to happen.</div> | ||
<font color="red">'''注意:'''</font>スタック・サイズを変更する場合、一般的な最適値は 512K、1M、または2Mである。<font color="red">'''決して 512M と設定しないように!'''</font> さもなくば大変なことになってしまうだろう。 | |||
===MapToolLauncherを使用したスタックサイズの設定=== | ===MapToolLauncherを使用したスタックサイズの設定=== |
Revision as of 05:08, 9 August 2011
{{#customtitle:スタック・サイズ|スタック・サイズ — MapToolDoc}}
スタックとは?
MapTool の起動時、JAVA仮想マシン(これは君のパソコンでMapToolを動かすためのプログラムだ!)は MapTool 用にいくつかの設定を行う。そのうちの2つの設定は MapTool が使用するメモリー、メイン・メモリーとスタックに関するものである。
メイン・メモリーの割り当て
MapTool へのメイン・メモリーの割り当ては単純にパソコンのRAMをMapToolがどれだけ利用可能かを示せば良い。たとえば、2GBのRAMがあるなら、MapTool に潤沢な1GBのメモリーを与えても良いし、望むのなら「MapToolは256KBのメモリーしか使っては行けません!」ということにしても構わない。
スタック・サイズ
MapToolが利用可能なメモリー総量以外に、起動時に Java が設定するメモリー量に関するもう一つの設定は、プログラム内の各スレッドが一度に利用可能なメモリー量のことである。このメモリーをスタックと呼ぶ。
このスタックは計算を伴うマクロを使うときに特に重要なものだ。複雑なマクロは、より多くのスタックメモリーを消費するからだ(いくつかのマクロはとてつもなく複雑だ!)。
結局のところ、マクロは複雑になるもので、利用可能なスタックを食いつくすと更なるメモリを求めてだだをこね始める。そしてそのとき、Stack Overflowのエラーを吐き出し、マクロは動かなくなってしまう。
スタックの設定
さしあたり、MapTool は Java により設定される標準のスタックサイズをそのまま使用する。実際の容量はパソコンやOSにより様々であるが、単純なマクロを動作させるには十分な容量である。
強力かつ柔軟な能力を持つマクロになってくると、標準のスタックサイズの限界に達するので、ユーザーはスタックサイズを相応しい容量まで引き上げることになる。
.BAT や .SH でのスタックサイズの設定
MapTool を起動するには、ダウンロードしZIPファイルを展開した MapTool に含まれる数種類のバッチファイルを利用する方法がある。これらのファイルはLaunch Maptool-512M-Memory.bat(Windows用)やLaunch MapTool.sh(Linux用)といったファイル名になっている。ファイル名の数値は MapTool が確保するメイン・メモリーの容量を指している。これらのバッチファイルの中身は次のようになっている:
javaw -Xmx512M -Xss512K -jar maptool-*.jar run
-X
. The first, -Xmx512M
indicates how much main memory (in this case, 512MB) is allocated to the Java virtual machine. ここで重要となる点は-X
で始まる部分だ。一つ目の、-Xmx512M
はJava仮想マシンがどれほどメイン・メモリーを予約するかを表している(この場合は512MB)。
-Xss512K
is how much memory is allocated to the stack (the "ss" is for "stack size"). 二つ目の、-Xss512K
はスタックがどれ程のメモリーを予約するか、ということだ(「ss」は「スタック・サイズ(stack size)」のこと)。
-Xss512K
is absent. To set the stack size allocated (overriding the defaults that are picked by Java or the value indicated), do the following:バージョンが1.3.b54より古い MapTool では -Xss512K
は欠けている。確保するスタック・サイズを設定する(Javaが設定する初期値を上書きする)方法は下記の通り:
1. バッチファイルをメモ帳などのテキストエディターで開く。
-Xss512K
line to be another value, for instance, -Xss1M
or -Xss2M
(M is for megabytes, K is for kilobytes).2. -Xss512K
の部分を、-Xss1M
や-Xss2M
などの異なる値に書き換える(M はメガバイト、K はキロバイトを意味する)。
3. ファイルを保存し、このバッチファイルを使い MapTool を起動する。
注意:スタック・サイズを変更する場合、一般的な最適値は 512K、1M、または2Mである。決して 512M と設定しないように! さもなくば大変なことになってしまうだろう。
MapToolLauncherを使用したスタックサイズの設定
WebStart利用時のスタックサイズの設定
Mac OSX でのスタックサイズの設定
- Ctrl-click (or right-click) on the application icon (the filename should end with .app).
- Choose Show Package Contents and a Finder window will open.
- Open the Contents folder and locate the Info.plist file.
- Ctrl-click (or right-click) on that file and choose Open With > Other...
- In the Choose Application dialog that opens, locate TextEdit and double-click on it.
- The Info.plist file is now open. There is an entry in the file called VMOptions (mine was about two-thirds of the way down the file) that should be changed to match the memory characteristics your GM wants you to use. Here's what mine looks like in case you want a reference for the following steps:
- <key>VMOptions</key>
- <array>
- <string>-Xmx768m</string>
- <string>-Xms64m</string>
- <string>-Xss3m</string>
- </array>
- Replace your entries with the example text in Step 6. However, your GM may have directed you to use a particular value for the "maximum memory" setting. If so, replace the 768 number with the new maximum. The GM may also ask you to change the "stack size" amount -- that's the 3 number following the ss. (The 64 number never needs to be changed.) If you have other entries between the <array> and </array> lines, they should be removed because you're specifying completely new values.
- Use Cmd-Q and then choose Save. You can close the Finder window that opened as well.