1

我正在为使用 JDK7 和 JRuby 1.7.0.preview1的JRuby 开发 Heroku buildpack 的一个分支。好消息是它有效 - 坏消息是蛞蝓非常大。一旦我将 JRuby、JDK 和“Hello, world”Rails 3 应用程序捆绑在一起,部署时压缩的 slug 大小为 98.4 MB。这并不奇怪,因为 JDK 为 129 MB,而 JRuby 为 29 MB(均未压缩)。

由于 Heroku 对 slug 有 100MB 的限制,这给我留给实际应用程序开发的空间很小 - 很容易看出,即使是一个简单的 Rails 应用程序也会让我超过限制。

我已经从 JDK 和 JRuby 中删除了尽可能多的明显“可选”的东西(源代码、文档、示例、x86_64 以外的东西的本机库等)。我想知道是否有任何聪明的方法可以将事情从 slug 中移出,进一步减少 JDK 或 JRuby,或者实际上增加允许的 slug 大小。鉴于 Heroku 的 buildpack 支持以及将虚拟机和框架捆绑在 slug 中的实际做法,100MB 的上限比以前低得多。

4

1 回答 1

1

这不是我真正的领域,但我认为您可以通过 JDK JAR 并删除大量在服务器上没有意义的东西。我知道您删除了一些文件,但听起来您并没有修剪您保留的任何 JAR。例如,我刚刚登顶,看到了一堆 Swing 和 AWT 类。仅这些就应该为您购买几兆字节。我敢肯定,你会比我更清楚还有什么是移除的好人选。

更新:我很好奇,所以我试了一下。通过删除 Swing 和 AWT,我节省了 5.5MB。这似乎是一个坚实的开始,而且,大概更熟悉的人可能会很好地知道还有什么可能有意义的删除。

更新 2:我刚刚保存了另外 4.5MB,总共 10MB,bzip2 --best用于重新压缩(解压缩)java 存档。这个技巧只为 jruby 存档节省了半兆,但这仍然使总数减少了 10.5MB。

于 2012-06-08T15:30:51.800 回答