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” (кучу).
При этом будут удалены объекты, которые пережили даже работу сборщика мусора. В ряде случаев это бывает необходимо, что бы вывести систему из сложного состояния, или перед работой с тяжелыми объектами.
–> 
Это вторая часть статьи. Все ссылки:
Первая часть: https://www.veeltech.ru/performance-oracle-sql-developer-part1
Вторая часть: https://www.veeltech.ru/performance-oracle-sql-developer-part2
Третья часть https://www.veeltech.ru/performance-oracle-sql-developer-part3