01.12.2020 0 min to read

Повышение производительности Oracle SQL Developer. Часть 2. Опции запуска.

Category : Статьи

Oracle SQL Developer и Oracle Data Modeler – приложения JVM. Соответственно все рекомендации по анализу настройке производительности JVM относятся и к ним. Оценить используемые ресурсы можно утилитой jvisualvm. В MAC OS она расположена /Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk/Contents/Home/bin/jvisualvm.

Какой объем ресурсов используют Oracle SQL Developer и Data Modeler

Включим Oracle SQL Developer и Oracle SQL Data Modeler, что бы оценить используемые ресурсы и возможность увеличения производительности.

Мы видим pid процессов, монитор ресурсов, опции запуска, потоки, сетевые подключения, файлы конфигурации. Пути к конфигурационным файлам (в MAC OS):

  • Oracle SQL Data Modeler (OSDM) /Users/sergey/.oraclesqldeveloperdatamodeler/19.5.0/product.conf
  • Oracle SQL Developer /Users/sergey/.sqldeveloper/20.2.0/product.conf

 

Oracle SQL Data Modeler (OSDM) и Oracle SQL Developer в настройках по-умолчанию при запуске занимают ~ 850 Мб ОЗУ, ограничение на использование памяти ~2200 Мб

Ресурсы Oracle Data Modeler после подключения к СУБД и импорта словаря данных небольшой схемы.

Ресурсы Oracle SQL Developer после подключения к СУБД и начала работы с небольшой таблицей и двумя хранимыми процедурами.

Отзывчивость интерфейса при таких настройках средняя, запуск программ ~12 секунд

Настройка параметров

Изменение параметров в файлах:

  • Oracle SQL Data Modeler (OSDM) /Users/sergey/.oraclesqldeveloperdatamodeler/19.5.0/product.conf
  • Oracle SQL Developer /Users/sergey/.sqldeveloper/20.2.0/product.conf

Установим одинаковые величины памяти и настройки JVM.

Xmn объём занятой памяти до которой сборщик мусора должен освобождать память;
Xms размер первоначально выделенной памяти под объекты;
Xmx максимально используемый размер памяти;

При любых значениях должно соблюдаться правило: Xmn < Xms < Xmx

Xms должно быть меньше Xmx, но подбирать исходя из работы приложения
Xmn ~ 0.5 * Xms

Пример настроек для 64 битной ОС и 64 битной JVM

##############################################################################
# использование памяти
Add64VMOption -Xmn1536M
Add64VMOption -Xms3072M
Add64VMOption -Xmx4096M
##############################################################################
# "переходящая" конфигурация для мультипроцессорных 64 битных систем
AddVMOption -XX:MaxPermSize=1024M 
AddVMOption -DMainWindow.MemoryMonitorOn=true
AddVMOption -XX:+UseConcMarkSweepGC
AddVMOption -DVFS_ENABLE=true 
AddVMOption -Dsun.java2d.ddoffscreen=false 
AddVMOption -XX:+UseParNewGC 
AddVMOption -XX:+CMSIncrementalMode 
AddVMOption -XX:+CMSIncrementalPacing 
AddVMOption -XX:CMSIncrementalDutyCycleMin=0 
AddVMOption -XX:CMSIncrementalDutyCycle=10
AddVMOption -XX:+UseStringCache 
AddVMOption -XX:+OptimizeStringConcat 
#AddVMOption -XX:+UseCompressedStrings 
AddVMOption -XX:+UseCompressedOops 
AddVMOption -XX:+AggressiveOpts
##############################################################################

Это конфигурация для повседневной работы. При работе со сложными объектами можно временно увеличить лимиты и перезапустить приложение.

После перезапуска в диспетчере задач видим изменение параметров доступной памяти:

 


 

Хинт. Очистка памяти во время работы приложения без перезапуска:

в правом нижнем углу окна нажать на значок корзины, что бы принудительно очистить память приложения “heap” (кучу).

При этом будут удалены объекты, которые пережили даже работу сборщика мусора. В ряде случаев это бывает необходимо, что бы вывести систему из сложного состояния, или перед работой с тяжелыми объектами.

  –>