0

有没有办法减少 YUI 压缩器所需的内存,或者是否有另一个压缩器能够在“低”内存环境中通过命令行运行?

我的托管服务提供商对我可以从 shell 使用的内存量和虚拟内存量有限制。目前它看起来像:ulimit -m 200000 -v 200000. -v 参数似乎具有实际效果。尝试在此环境中运行 YUI Compressor 时,我得到以下两个结果之一:

Error occurred during initialization of VM
Could not reserve enough space for object heap
Could not create the Java virtual machine.

或者

Exception java.lang.OutOfMemoryError: requested 32756 bytes for ChunkPool::allocate. Out of swap space?

不同之处在于第二个参数使用了 JVM 参数-Xms18m -Xmx18m。我可以在我的本地 linux 机器上复制这种效果,如下所示:

( ulimit -v 200000; java -Xmx18m -jar yui-compressor-2.4.2.jar -o foo-min.css foo.css )

我希望在更新源代码以推送到实时站点后立即在托管服务提供商上构建 javascript 和 css。

4

1 回答 1

0

通过使用 Sun 的 Small Footprint Runtime Environment,我能够让 YUI 压缩器在受限的内存空间中执行。

$ java -version
java version "1.5.0_10-eval"
Java(TM) 2 Runtime Environment, Standard Edition for Embedded (build 1.5.0_10-eval-b02, headless)
Java HotSpot(TM) Client VM (build 1.5.0_10-eval-b02, mixed mode)
Evaluation version, 90 days remain in evaluation period

我看到的唯一问题是它是一个评估版本,但在这个版本中,我不必胡乱使用 -Xmx 或 -XX:MaxPermPool 选项。

于 2009-12-18T15:36:11.727 回答