2

我在 Linux 上使用 IntelliJ IDEA,最近我有 16 GB 的 RAM,那么有什么方法可以使用这个内存加速我的项目编译?

4

3 回答 3

4

首先,为了加速 IntelliJ IDEA 本身,您可能会发现这个讨论非常有用。

加速编译的最简单方法是将编译输出移动到 RAM 磁盘。

RAM 磁盘设置

打开 fstab

$ sudo gedit /etc/fstab

(而不是gedit你可以使用vi或任何你喜欢的)

设置 RAM 磁盘挂载点

我在我的系统中的几个地方使用了 RAM 磁盘,其中之一是/tmp,所以我将把我的编译输出放在那里:

tmpfs /var/tmp tmpfs defaults 0 0

在这种情况下,您的文件系统大小将不受限制,但没关系,我/tmp现在的大小是 73MB。但是如果你担心 RAM 磁盘的大小会变得太大 - 你可以限制它的大小,例如:

tmpfs /var/tmp tmpfs defaults,size=512M 0 0

项目设置

在 IntelliJ IDEA 中,打开 Project Structure(Ctrl+Alt+Shift+S默认情况下),然后转到 Project - 'Project compiler output' 并将其移动到 RAM 磁盘安装点:

/tmp/projectName/out

(我添加了projectName文件夹以便在我需要到达那里或同时处理多个项目时轻松找到它)

然后,转到模块,在所有模块中转到路径并选择“继承项目编译输出路径”,或者,如果您想使用自定义编译输出路径,请按照您的方式修改“输出路径”和“测试输出路径”它之前项目编译器输出。

就是这样,伙计们!

PS 几个数字:不同情况下我当前项目编译的时间(大约):

HDD:     80s
SSD:     30s
SSD+RAM: 20s

PPS 如果您使用 SSD 磁盘,除了编译加速之外,您将减少磁盘上的写入操作,因此它也将帮助您的 SSD 过上幸福的生活;)

于 2013-10-16T09:29:34.127 回答
2

是的你可以。有几种方法可以做到这一点。首先,您可以根据您拥有的内存量微调 JVM。以这个https://gist.github.com/zafarella/43bc260c3c0cdc34f109为例。

此外,根据您使用的 linux 发行版,还有一种方法可以创建 RAM 磁盘并将内容同步到 HDD。基本上你会将所有日志和 tmp 文件(包括索引)放入 RAM - 你的想法会飞。

使用类似 profile-sync-daemon 的东西来保持文件同步。可以轻松地将 Idea 添加为应用程序。或者,您可以使用任何东西同步守护程序

您需要更改“idea.system.path”和“idea.log.path”有关想法设置的更多详细信息可以在他们的文档中找到。这个想法是将任何经常发生的变化移动到 RAM 中。

更多 RAM 磁盘替代品https://wiki.debian.org/SSDOptimization#Persistent_RAMDISK

这个解决方案的坏处是,当 RAM 中的空间不足时,操作系统会分页并减慢一切。

希望有帮助。

于 2015-05-26T00:19:26.100 回答
1

除了 ramdisk 方法之外,您还可以通过为其进程提供更多内存(但不要太多)并并行编译独立模块来加速编译。这两个选项都可以在设置 | 上找到。编译器。

于 2013-10-16T19:01:58.703 回答