Oct 9, 2019

SQL Developer performance TIPs (MacOS)


A while ago, i have experienced problems related to sqldeveloper performance (and especially on my MacOS), for that reason i'll share some tips about that:

1.- Change Look and Feel to "Mac OS X". That option will consume less memory and will perform better: 
On SQLDeveloper Menu -> Preferences -> Environment


2.- To improve even more, disable Completion Insight.
On SQLDeveloper Menu -> Preferences -> Code Editor -> Completion Insight


3.- Disable options and Features unused.
On SQLDeveloper Menu -> Tools -> Features


4.- To adjust SQLDeveloper Options like memory consumption on the configuration file. In my case the file is stored on:
/Users/USERNAME/.sqldeveloper/19.1.0/product.conf

On that file we could modify for instance the jvm max memory consumption, add the next parameter:
AddVMOption -Xmx300m
Add32VMOption -Xmx300m
Add64VMOption -Xmx300m

And at next sqldeveloper reboot, we can see is already up with the new parameter, for example:

felipes-MacBook-Pro:19.1.0 felipedonoso$ ps -fea | grep sqldeveloper | grep Xmx
  501  2723  2307   0 10:42AM ??         5:19.18 /Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java -Xbootclasspath/a:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/tools.jar:/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/lib/dt.jar -Djdeveloper.system_http_proxy=DIRECT -Djdeveloper.system_http_non_proxy_hosts= -Dsun.java2d.noddraw=true -XX:CompileCommand=quiet -XX:CompileCommand=exclude,javax/swing/text/GlyphView,getBreakSpot -Dnetbeans.home=../../ide/bin/../../netbeans/platform/ -Dnetbeans.logger.console=true -Dexcluded.modules=org.eclipse.osgi -Dide.cluster.dirs=../../ide/bin/../../netbeans/fcpbridge/:../../ide/bin/../../netbeans/ide/:../../ide/bin/../../netbeans/../ -Xverify:none -Doracle.ide.extension.HooksProcessingMode=LAZY -Dorg.eclipse.equinox.simpleconfigurator.configUrl=file:bundles.info -Dosgi.bundles.defaultStartLevel=1 -Dosgi.configuration.cascaded=false -Dosgi.noShutdown=true -Dorg.osgi.framework.bootdelegation=* -Dosgi.parentClassloader=app -Dosgi.locking=none -Dosgi.contextClassLoaderParent=app -Dosgi.classloader.type=parallel -Dosgi.bundlefile.limit=500 -Dide.feedback-server=ide.us.oracle.com -Djavax.xml.transform.TransformerFactory=oracle.ide.xml.switchable.SwitchableTransformerFactory -Djavax.xml.stream.XMLInputFactory=com.ctc.wstx.stax.WstxInputFactory -Djavax.xml.stream.util.XMLEventAllocator=oracle.ideimpl.xml.stream.XMLEventAllocatorImpl -Doracle.ide.reportEDTViolations=bug -Doracle.ide.reportEDTViolations.exceptionsfile=../../ide/bin/swing-thread-violations.conf -Xms128M -Xmx800M -Doracle.ide.IdeFrameworkCommandLineOptions=-clean,-console,-debugmode,-migrate,-migrate:,-nomigrate,-nonag,-nondebugmode,-noreopen,-nosplash,-role:,-su -Dide.update.usage.servers=https://www.oracle.com/webfolder/technetwork/sqldeveloper/usage.xml -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Dsun.java2d.ddoffscreen=false -Dwindows.shell.font.languages= -Doracle.ide.startup.features=sqldeveloper -Doracle.ide.osgi.boot.api.OJStartupHook=oracle.dbtools.raptor.startup.HomeSupport -Doracle.jdbc.mapDateToTimestamp=false -Doracle.jdbc.autoCommitSpecCompliant=false -Doracle.jdbc.useFetchSizeWithLongColumn=true -Dsun.locale.formatasdefault=true -Dorg.netbeans.CLIHandler.server=false -Doracle.xdkjava.security.resolveEntityDefault=false -Dide.AssertTracingDisabled=true -Doracle.ide.util.AddinPolicyUtils.OVERRIDE_FLAG=true -Djava.util.logging.config.file=logging.conf -Dsqldev.debug=false -Dsqldev.onsd=true -Dcom.apple.mrj.application.apple.menu.about.name=SQL_Developer -Dcom.apple.mrj.application.growbox.intrudes=false -Dcom.apple.macos.smallTabs=true -Dapple.laf.useScreenMenuBar=true -Xdock:name=Oracle SQL Developer -Xdock:icon=SQLDeveloperIcons.icns -Xmx300m -Dide.conf="/Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin/sqldeveloper.conf" -Duser.conf="/Users/felipedonoso/.sqldeveloper/19.1.0/product.conf" -Dtool.user.conf="/Users/felipedonoso/.sqldeveloper/19.1.0/sqldeveloper.conf" -Dide.startingcwd="/Applications/SQLDeveloper.app/Contents/Resources/sqldeveloper/sqldeveloper/bin" -Xmx300m -Xbootclasspath/p:../../ide/bin/../../rdbms/jlib/ojdi.jar -classpath ../../ide/bin/../../ide/lib/ide-boot.jar:../../ide/bin/../../netbeans/platform/lib/boot.jar:../../ide/bin/../../netbeans/platform/lib/org-openide-util-ui.jar:../../ide/bin/../../netbeans/platform/lib/org-openide-util.jar:../../ide/bin/../../netbeans/platform/lib/org-openide-util-lookup.jar:../../ide/bin/../../netbeans/platform/lib/org-openide-modules.jar:../../ide/bin/../../ide/lib/fcpboot.jar:../../ide/bin/../../ide/lib/xml-factory.jar:../../ide/bin/../../ide/lib/woodstox-core-asl-4.2.0.jar:../../ide/bin/../../ide/lib/stax2-api-3.1.1.jar:../lib/oracle.sqldeveloper.homesupport.jar oracle.ide.osgi.boot.OracleIdeLauncher

For right now that's all my tips. In the future i'ill add more tips.
Regards.