如何增加SQLDeveloper的内存占用

如何增加SQLDeveloper的内存占用

我想使用 SQLDeveloper 处理相当大的文件。但是,由于内存不足,性能(最好的情况下)很差。

假设它是一个 Java 应用程序,我如何增加分配给 VM 的内存大小?

答案1

添加

AddVMOption  -Xmx1024M 
AddVMOption  -Xms512M

sqldeveloper/ide/bin/ide.conf可能不起作用。也不推荐这样做(请参阅 sqldeveloper\ide\bin\ide.conf 文件顶部的注释)。在较新版本的 SQL Developer 中(肯定是 4.x 版本之后),可以覆盖 sqldeveloper/ide/bin/ide.conf 中的设置

视窗:

C:\Users\${WINDOWS_USER_NAME}\AppData\Roaming\sqldeveloper\${SQL_DEVELOPER_VERSION}\product.conf

Linux:

/home/${USER_NAME}/.sqldeveloper/${SQL_DEVELOPER_VERSION}/product.conf

笔记:您可以在 SQLDeveloper->帮助->关于->属性->属性名称“user.conf”中找到 product.conf 文件的路径

你需要改变

AddVMOption  -Xmx1024M 
AddVMOption  -Xms512M

在上面的配置文件中。

答案2

编辑sqldeveloper/ide/bin/ide.conf文件并更改以下两行:

#
# If you are getting the 'Low Memory Warning' Message Dialog while running
# JDeveloper, please increase the -Xmx value below from the default 768M to
# something greater, like 1024M or 1250M.  If after increasing the value,
# JDeveloper is no longer starting up because it fails to create a virtual
# machine, then please reduce the modified -Xmx value.
#
AddVMOption  -Xmx1024M
AddVMOption  -Xms512M

-XX:MaxPermSize关于使用in的其他答案sqldeveloper/bin/sqldeveloper.conf已经过时,在最新版本的 sqldeveloper 中不起作用。使用该答案会导致在启动时出现以下 sqldeveloper 消息:

Java HotSpot(TM) 64 位服务器 VM 警告:忽略选项 MaxPermSize=1024M;8.0 中已取消支持

答案3

这个帖子包含有关在何处调整 JVM 设置的有用详细信息。

本质上,查找 ~/sqldeveloper/bin/sqldeveloper.conf 并在其中查找:

AddVMOption -XX:MaxPermSize=128M

答案4

导致此问题的另一个原因
我发现了 SQL Developer 限制最大分配内存的另一个原因,而这在现有的答案中没有描述。

我在使用 SQL Developer 时遇到了这个问题:

  • 在具有 32GB RAM 的 Windows 10 计算机上
  • 使用当时最新版本的 SQL Developer(23.1.1)
  • 使用上一版本和再上一版本
  • 将 product.conf Xmx 更改为许多不同的数字后(在:[本地用户 AppData 路径]/Roaming/sqldeveloper/23.1.1(和 22.2.1 等...)
  • 在 [sql developer executable 的路径]/sqldeveloper/sqldeveloper 中更改了 jdk.conf 以及 ide.conf(与可执行文件位于同一位置)之后

我花了几个小时尝试不同的内存值和表示方法(从千字节到兆字节再到千兆字节,使用上限和下限,设置非常低的 Xss 设置,然后设置更高的 Xmx 设置)。
我甚至将上述值与我知道是错误的垃圾混杂在一起,以便我可以验证文件是否正在被读取。
关键是,所有标准位置记录的内容都没有起作用。

修复
事实证明,有一个环境变量集胜过所有其他设置。

_JAVA_OPTIONS -Xmx512M

我修改了上述内容,最终,SQL Developer 的最大内存分配大小大于 512M。以前,它始终设置为该值,无论 .conf 中设置了什么。

最终修复
执行以下操作之一:

  • 删除环境变量(确保 .conf 文件设置正确)
  • 将环境变量更改为更大的值(测试时我尝试了 2048M...因为原始值是 512M...

相关内容