我正在Linux上使用IntelliJ IDEA,最近我有16 GB的RAM,所以有什么方法可以使用这个内存加快我的项目编译吗?
首先,为了加速IntelliJ IDEA本身,你可能会发现这个讨论非常有用。
加速编译的最简单方法是将编译输出移动到 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中,打开项目结构(默认为Ctrl+Alt+Shift+S
),然后转到项目-"项目编译器输出"并将其移动到RAM磁盘挂载点:
/tmp/projectName/out
(我已经添加了projectName
文件夹,以便在我需要到达那里或同时处理多个项目时轻松找到它)
或者,如果要使用自定义编译输出路径,请修改"输出路径"和"测试输出路径",就像之前对项目编译器输出所做的那样。
就是这样,伙计们!
附言几个数字:不同情况下我当前项目编译的时间(大约):
HDD: 80s
SSD: 30s
SSD+RAM: 20s
附言如果您使用SSD磁盘,除了编译加速外,您还可以减少磁盘上的写入操作,因此它还将帮助您的SSD从此过上幸福的生活;)
是的,你可以。有几种方法可以做到这一点。首先,您可以根据您拥有的内存量微调 JVM。以这个 https://gist.github.com/zafarella/43bc260c3c0cdc34f109 为例。
此外,根据您使用的 Linux 发行版,还有一种方法可以创建 RAM 磁盘并将内容重新同步到 HDD。基本上,您将所有日志和tmp文件(包括索引)放入RAM中-您的想法会飞。
使用类似此配置文件同步守护程序的内容来保持文件同步。可以轻松地将Idea添加为应用程序。或者,您可以使用任何同步守护程序
您需要更改"idea.system.path"和"idea.log.path"有关 Idea 设置的更多详细信息,请参阅他们的文档。这个想法是将经常更改的任何内容移动到RAM中。
更多 RAM 磁盘替代品 https://wiki.debian.org/SSDOptimization#Persistent_RAMDISK
这个解决方案的缺点是,当您在RAM操作系统中没有足够的空间时,它会对内容进行页面,并且会减慢一切。
希望有帮助。
除了虚拟硬盘方法之外,您还可以通过为其进程提供更多内存(但不要太多)并并行编译独立模块来加快编译速度。这两个选项都可以在"设置"|"编译器。