【发布时间】:2013-10-24 08:25:33
【问题描述】:
我在 Linux 上使用 IntelliJ IDEA,最近我有 16 GB 的 RAM,那么有什么方法可以使用此内存加速我的项目编译?
【问题讨论】:
-
Speedup IntelliJ-Idea 的可能重复项
标签: linux ubuntu intellij-idea ramdisk tmpfs
我在 Linux 上使用 IntelliJ IDEA,最近我有 16 GB 的 RAM,那么有什么方法可以使用此内存加速我的项目编译?
【问题讨论】:
标签: linux ubuntu intellij-idea ramdisk tmpfs
首先,为了加速 IntelliJ IDEA 本身,您可能会发现 this discussion 非常有用。
加速编译的最简单方法是将编译输出移动到 RAM 磁盘。
$ sudo gedit /etc/fstab
(代替gedit,你可以使用vi或任何你喜欢的)
我在系统的几个地方都使用了 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 文件夹,以便在我需要到达那里或同时处理多个项目时轻松找到它)
然后,转到模块,在所有模块中转到路径并选择“继承项目编译输出路径”,或者,如果您想使用自定义编译输出路径,请修改“输出路径”和“测试输出路径”你以前用它来投影编译器输出的方式。
就是这样,伙计们!
附:几个数字:不同情况下我当前项目编译的时间(大约):
HDD: 80s
SSD: 30s
SSD+RAM: 20s
P.P.S.如果你使用 SSD 磁盘,除了编译加速之外,你会减少磁盘上的写入操作,所以它也将帮助你的 SSD 过上幸福的生活;)
【讨论】:
除了 ramdisk 方法之外,您还可以通过为其进程提供更多内存(但不要太多)并并行编译独立模块来加速编译。这两个选项都可以在设置 | 上找到。编译器。
【讨论】:
是的,你可以。有几种方法可以做到这一点。首先,您可以根据您拥有的内存量微调 JVM。以这个https://gist.github.com/zafarella/43bc260c3c0cdc34f109为例。
此外,根据您使用的 linux 发行版,还有一种方法可以创建 RAM 磁盘并将内容重新同步到 HDD。基本上你会将所有日志和 tmp 文件(包括索引)放入 RAM - 你的想法会飞。
使用类似 profile-sync-daemon 的东西来保持文件同步。可以轻松地将 Idea 添加为应用程序。或者,您可以使用任何同步守护进程
您需要更改“idea.system.path”和“idea.log.path” 可以在他们的文档中找到有关 Idea 设置的更多详细信息。这个想法是将任何经常发生的变化移到 RAM 中。
更多 RAM 磁盘替代品https://wiki.debian.org/SSDOptimization#Persistent_RAMDISK
这个解决方案的坏处在于,当 RAM 中的空间用完时,操作系统会分页并减慢一切。
希望对您有所帮助。
【讨论】: