Stack Size/ja: Difference between revisions
Line 33: | Line 33: | ||
<div style="color:gray">In the beginning, MapTool used whatever default stack size Java felt like setting. The actual amount varied from computer to computer and operating system to operating system, but it was generally enough for the simple macros that were in use at the time.</div> | <div style="color:gray">In the beginning, MapTool used whatever default stack size Java felt like setting. The actual amount varied from computer to computer and operating system to operating system, but it was generally enough for the simple macros that were in use at the time.</div> | ||
さしあたり、MapTool は Java により設定される標準のスタックサイズをそのまま使用する。実際の容量はパソコンやOSにより様々であるが、単純なマクロを動作させるには十分な容量である。 | |||
<div style="color:gray">As the power and flexibility of the macro code increased, macros began to bump up against the limits of the default stack, and users began adjusting their stack size to compensate. </div> | <div style="color:gray">As the power and flexibility of the macro code increased, macros began to bump up against the limits of the default stack, and users began adjusting their stack size to compensate. </div> | ||
強力かつ柔軟な能力を持つマクロになってくると、標準のスタックサイズの限界に達するので、ユーザーはスタックサイズを相応しい容量まで引き上げることになる。 | |||
===.BATや.SHでのスタックサイズの設定=== | ===.BATや.SHでのスタックサイズの設定=== |
Revision as of 12:55, 18 November 2010
{{#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でのスタックサイズの設定
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. -Xss512K
is how much memory is allocated to the stack (the "ss" is for "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:-Xss512K
line to be another value, for instance, -Xss1M
or -Xss2M
(M is for megabytes, K is for kilobytes).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.