我在 Linux 上使用 IntelliJ IDEA,最近我有 16 GB 的 RAM,那么有什么方法可以使用这个内存加速我的项目编译?
3 回答
首先,为了加速 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 过上幸福的生活;)
是的你可以。有几种方法可以做到这一点。首先,您可以根据您拥有的内存量微调 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 中的空间不足时,操作系统会分页并减慢一切。
希望有帮助。
除了 ramdisk 方法之外,您还可以通过为其进程提供更多内存(但不要太多)并并行编译独立模块来加速编译。这两个选项都可以在设置 | 上找到。编译器。