This discussion is archived
11 Replies Latest reply: Nov 23, 2012 6:10 AM by 968934 RSS

SQLDeveloper slow on first launch

968934 Newbie
Currently Being Moderated
I cannot get SQLDeveloper to start first time in under 5 minutes. It takes 1 minute for the splash screen to show, and a further 4 minutes to launch the application.
I have switched off check for updates (Tools > Preferences > Extensions. [ ] Automatically check for updates is off)
I have added sqldeveloper folder to antivirus exclusion (so no scan on access).
I have switched on debug (in sqldeveloper-conf, changed to IncludeConfFile sqldeveloper-debug.conf):
==================
FINE     517     31     oracle.jdevimpl.db.adapter.DefaultContextWrapper     Creating AdfJndiContext at /C:/Users/david.torbett/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml took 47ms
FINE     516     0     oracle.adf.share.common.rc.util.impl.JarDocumentCache     Jar document cache lastMod: true
FINE     515     16     oracle.adf.share.common.rc.util.impl.JarDocumentCache     Jar document cache size: 0
FINE     514     0     oracle.adf.share.jndi.FileSystemBackingStore     Reading file : C:\Users\david.torbett\AppData\Roaming\SQL Developer\system3.2.10.09.57\o.jdeveloper.db.connection.11.1.1.4.37.59.48\connections.xml
FINEST     513     0     oracle.adf.share.jndi.ContextImpl     The Context.PROVIDER_URL is /C:/Users/david.torbett/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml
FINEST     512     0     oracle.adf.share.jndi.FileSystemBackingStore     FileSystemBackingStore is being initialized
FINE     511     0     oracle.adf.share.jndi.ContextImpl     Backing Store :null
FINEST     510     16     oracle.adf.share.jndi.ContextImpl     The Context.PROVIDER_URL is /C:/Users/david.torbett/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml
INFO     509     655     oracle.dbtools.raptor.utils.Connections     Connection Architecture duration:0
FINER     501     1156     oracle.jdevimpl.db.DBConnAddin     addins are loaded so database connections are now available
FINEST     498     375     oracle.bali.xml.addin.XMLEditorAddin     msg to init log framework
FINE     491     0     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.OracleConnectionCreator for subtype oraJDBC with oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator
==================

PC (laptop), is i5 / 8Gb / Win7 64Bit / 240Gb SSD.

SQLDeveloper build is:

==================
About
-----

Oracle SQL Developer 3.2.10.09
Version 3.2.10.09
Build MAIN-09.57
Copyright © 2005, 2012 Oracle. All Rights Reserved.
IDE Version: 11.1.1.4.37.59.48
Product ID: oracle.sqldeveloper
Product Version: 11.2.0.09.57

Version
-------

Component     Version
=========     =======
Java(TM) Platform     1.7.0_07
Oracle IDE     3.2.10.09.57
Versioning Support     3.2.10.09.57
==================

From the debug, the following seems to be taking the time (but no idea really!):
FINER     501     1156     oracle.jdevimpl.db.DBConnAddin     addins are loaded so database connections are now available

Would anyone have any idea how I can speed up SQLDeveloper. I'm getting old and by the time it loads, I forget why I launched it!
Many thanks
  • 1. Re: SQLDeveloper slow on first launch
    Gary Graham Expert
    Currently Being Moderated
    Hi,

    In my case the first launch takes 30 sec. Close and relaunch takes 5 to 6 seconds. I use 1.6.0_35.

    I believe these have all been fixed, but in past releases there have been issues with...
    1. Size of the user's SqlHistory folder (I tried one of 74K vs 549K but it made no difference)
    2. Number of TNS connections (used to test every such connection)

    If it really is a first launch for a new installation and you migrate settings, then that always takes a few seconds more. Do you have any third-party extensions installed? Do you use source control management (like SVN)?

    It's difficult to say more without some debugging. If it is slow in one particular area, you could try nailing it down by taking multiple thread dumps during that period and verify the same thread is staying busy:

    //Example for Windows
    1. Open a command line console. Adjust the properties so the console buffer size is at least 500 lines.
    2. CD to your installation bin directory ( ...\sqldeveloper\sqldeveloper\bin).
    3. set ORACLE_HOME=%CD% (This is optional - if you want to ensure use of the jdbc driver that ships with SQL Developer)
    4. Launch sqldeveloper.exe (not sqldeveloperW.exe) so any debug messages appear in the console
    5. Run your test case and when it hangs, do a Ctrl-Break from the console to get a full thread dump

    If you wish to take multiple thread dumps, increase the console buffer size to several thousand lines.

    Regards,
    Gary
    SQL Developer Team
  • 2. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Gary Graham wrote:
    Do you have any third-party extensions installed?
    Nope
    Do you use source control management (like SVN)?
    Nope
    If you wish to take multiple thread dumps, increase the console buffer size to several thousand lines."
    Thanks Gary. That's a fairly laborious process to get some debug out of SQLDeveloper. Is there no way to switch debugging on, launch the application and have it spit stuff out to a log?
    As I said, this is only an issue for the first launch of the application after a boot. If I close and re-open the application, it's much faster.
    I will try your thread dumping method tomorrow in work if I get time and will report back findiings.
    Thanks again.
    David
  • 3. Re: SQLDeveloper slow on first launch
    Gary Graham Expert
    Currently Being Moderated
    David,

    Other than using a Java profiler, getting a full thread dump is really the best way to check out hangs and other slow performance issues. You already added IncludeConfFile sqldeveloper-debug.conf. You could try making the granularity finer via the Logging Page's context menu Change Log Level option.

    -Gary
  • 4. Re: SQLDeveloper slow on first launch
    Gary Graham Expert
    Currently Being Moderated
    But, in terms of performance, be careful of the
    AddVMOption -Xms50M
    AddVMOption -Xmx200M
    settings in the sqldeveloper-debug.conf file. They are lower than the non-debug settings and also might be slowing you down even more.
    In my case the first launch takes 30 sec. Close and relaunch takes 5 to 6 seconds. I use 1.6.0_35.
    Out of curiosity, I retested this launch test immediately after booting up: it took 60 rather than 30 sec. A relaunch after the close took only 7 sec. The moral of the story? Lots of services are starting up on my system at that point and obviously have an impact. Probably something similar is true for your system.

    Edited by: Gary Graham on Oct 18, 2012 1:32 AM
  • 5. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Hi Gary,
    Launched SQLDeveloper from cmd window and Ctrl-Break produced the following. Do you see anything that could help?:
    _execv() failed, err=

    22012-10-22 10:24:41
    Full thread dump Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode):

    "JarIndex Timer" daemon prio=6 tid=0x0000000009981800 nid=0x12fc in Object.wait() [0x000000000b75f000]
    java.lang.Thread.State: TIMED_WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000fc044ce8> (a java.util.TaskQueue)
    at java.util.TimerThread.mainLoop(Timer.java:552)
    - locked <0x00000000fc044ce8> (a java.util.TaskQueue)
    at java.util.TimerThread.run(Timer.java:505)

    "AWT-EventQueue-0" prio=6 tid=0x0000000009728800 nid=0x1264 waiting on condition [0x000000000b4ef000]
    java.lang.Thread.State: WAITING (parking)
    at sun.misc.Unsafe.park(Native Method)
    - parking to wait for <0x00000000fc9e0538> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
    at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186)
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2043)
    at java.awt.EventQueue.getNextEvent(EventQueue.java:531)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:213)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:163)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:147)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:139)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:97)

    "AWT-Windows" daemon prio=6 tid=0x00000000090e6800 nid=0x8c4 runnable [0x000000000a55f000]
    java.lang.Thread.State: RUNNABLE
    at sun.awt.windows.WToolkit.eventLoop(Native Method)
    at sun.awt.windows.WToolkit.run(WToolkit.java:299)
    at java.lang.Thread.run(Thread.java:722)

    "AWT-Shutdown" prio=6 tid=0x0000000008f9d800 nid=0x594 in Object.wait() [0x000000000a45f000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000fc9e0748> (a java.lang.Object)
    at java.lang.Object.wait(Object.java:503)
    at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:287)
    - locked <0x00000000fc9e0748> (a java.lang.Object)
    at java.lang.Thread.run(Thread.java:722)

    "Java2D Disposer" daemon prio=10 tid=0x00000000090ce000 nid=0x714 in Object.wait() [0x000000000a35f000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000fc9e07e8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000000fc9e07e8> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at sun.java2d.Disposer.run(Disposer.java:145)
    at java.lang.Thread.run(Thread.java:722)

    "Service Thread" daemon prio=6 tid=0x0000000007552000 nid=0xff0 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    "C2 CompilerThread1" daemon prio=10 tid=0x000000000754c000 nid=0x8bc waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    "C2 CompilerThread0" daemon prio=10 tid=0x0000000007547000 nid=0x15bc waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    "Attach Listener" daemon prio=10 tid=0x0000000007546000 nid=0x10c4 runnable [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    "Signal Dispatcher" daemon prio=10 tid=0x000000000753f000 nid=0x444 waiting on condition [0x0000000000000000]
    java.lang.Thread.State: RUNNABLE

    "Finalizer" daemon prio=8 tid=0x00000000026c6000 nid=0xbc0 in Object.wait() [0x000000000878f000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000fc9f0e20> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:135)
    - locked <0x00000000fc9f0e20> (a java.lang.ref.ReferenceQueue$Lock)
    at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:151)
    at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:177)

    "Reference Handler" daemon prio=10 tid=0x00000000026bf000 nid=0x155c in Object.wait() [0x000000000868f000]
    java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x00000000fc9f0c98> (a java.lang.ref.Reference$Lock)
    at java.lang.Object.wait(Object.java:503)
    at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:133)
    - locked <0x00000000fc9f0c98> (a java.lang.ref.Reference$Lock)

    "main" prio=6 tid=0x000000000272e800 nid=0xf68 runnable [0x000000000012d000]
    java.lang.Thread.State: RUNNABLE
    at java.io.RandomAccessFile.open(Native Method)
    at java.io.RandomAccessFile.<init>(RandomAccessFile.java:233)
    at oracle.ide.net.JarIndex.openJarFileImpl(JarIndex.java:1656)
    at oracle.ide.net.JarIndex.openJarFile(JarIndex.java:1629)
    at oracle.ide.net.JarIndex.run(JarIndex.java:1503)
    - locked <0x00000000fc491770> (a oracle.ide.net.JarIndex)
    at oracle.ide.net.JarIndex.exists(JarIndex.java:618)
    at oracle.ide.net.JarURLFileSystemHelper.exists(JarURLFileSystemHelper.java:157)
    at oracle.ide.net.URLFileSystem.exists(URLFileSystem.java:553)
    at oracle.ideimpl.jsr198.VirtualFileSystemHelperImpl.exists(VirtualFileSystemHelperImpl.java:68)
    at javax.ide.net.VirtualFileSystem.exists(VirtualFileSystem.java:510)
    at javax.ide.extension.spi.JARExtensionSource.getManifestURI(JARExtensionSource.java:59)
    at javax.ide.extension.ExtensionRegistry.loadExtensions(ExtensionRegistry.java:149)
    at oracle.ideimpl.extension.ExtensionManagerImpl.loadExtensions(ExtensionManagerImpl.java:510)
    at javax.ide.extension.ExtensionRegistry.initialize(ExtensionRegistry.java:381)
    at oracle.ideimpl.extension.ExtensionManagerImpl.initialize(ExtensionManagerImpl.java:954)
    at javax.ide.Service.getService(Service.java:68)
    at javax.ide.extension.ExtensionRegistry.getExtensionRegistry(ExtensionRegistry.java:400)
    at oracle.ide.ExtensionRegistry.getExtensionRegistry(ExtensionRegistry.java:191)
    at oracle.ide.IdeCore.startupImpl(IdeCore.java:1376)
    at oracle.ide.Ide.startup(Ide.java:703)
    at oracle.ideimpl.DefaultIdeStarter.startIde(DefaultIdeStarter.java:35)
    at oracle.ideimpl.Main.start(Main.java:184)
    at oracle.ideimpl.Main.main(Main.java:146)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at oracle.ide.boot.PCLMain.callMain(PCLMain.java:62)
    at oracle.ide.boot.PCLMain.main(PCLMain.java:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at oracle.classloader.util.MainClass.invoke(MainClass.java:128)
    at oracle.ide.boot.IdeLauncher.bootClassLoadersAndMain(IdeLauncher.java:189)
    at oracle.ide.boot.IdeLauncher.launchImpl(IdeLauncher.java:89)
    at oracle.ide.boot.IdeLauncher.launch(IdeLauncher.java:65)
    at oracle.ide.boot.IdeLauncher.main(IdeLauncher.java:54)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at oracle.ide.boot.Launcher.invokeMain(Launcher.java:713)
    at oracle.ide.boot.Launcher.launchImpl(Launcher.java:115)
    at oracle.ide.boot.Launcher.launch(Launcher.java:68)
    at oracle.ide.boot.Launcher.main(Launcher.java:57)

    "VM Thread" prio=10 tid=0x00000000026bd800 nid=0x17d8 runnable

    "GC task thread#0 (ParallelGC)" prio=6 tid=0x0000000002615800 nid=0x1220 runnable

    "GC task thread#1 (ParallelGC)" prio=6 tid=0x0000000002617000 nid=0xfdc runnable

    "GC task thread#2 (ParallelGC)" prio=6 tid=0x0000000002619000 nid=0x6d8 runnable

    "GC task thread#3 (ParallelGC)" prio=6 tid=0x000000000261a800 nid=0x318 runnable

    "VM Periodic Task Thread" prio=10 tid=0x000000000756b000 nid=0xebc waiting on condition

    JNI global references: 453

    Heap
    PSYoungGen total 14912K, used 9558K [0x00000000fbd60000, 0x00000000fce00000, 0x0000000100000000)
    eden space 12800K, 58% used [0x00000000fbd60000,0x00000000fc4abe60,0x00000000fc9e0000)
    from space 2112K, 98% used [0x00000000fc9e0000,0x00000000fcbe9ba0,0x00000000fcbf0000)
    to space 2112K, 0% used [0x00000000fcbf0000,0x00000000fcbf0000,0x00000000fce00000)
    ParOldGen total 34176K, used 1248K [0x00000000f3800000, 0x00000000f5960000, 0x00000000fbd60000)
    object space 34176K, 3% used [0x00000000f3800000,0x00000000f3938110,0x00000000f5960000)
    PSPermGen total 21248K, used 12403K [0x00000000e3800000, 0x00000000e4cc0000, 0x00000000f3800000)
    object space 21248K, 58% used [0x00000000e3800000,0x00000000e441ccc8,0x00000000e4cc0000)

    Output from Logging Page:
    FINE     513     31     oracle.jdevimpl.db.adapter.DefaultContextWrapper     Creating AdfJndiContext at /C:/Users/{me}/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml took 47ms
    FINE     512     0     oracle.adf.share.common.rc.util.impl.JarDocumentCache     Jar document cache lastMod: true
    FINE     511     0     oracle.adf.share.common.rc.util.impl.JarDocumentCache     Jar document cache size: 0
    FINE     510     0     oracle.adf.share.jndi.FileSystemBackingStore     Reading file : C:\Users\{me}\AppData\Roaming\SQL Developer\system3.2.10.09.57\o.jdeveloper.db.connection.11.1.1.4.37.59.48\connections.xml
    FINEST     509     16     oracle.adf.share.jndi.ContextImpl     The Context.PROVIDER_URL is /C:/Users/{me}/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml
    FINEST     508     0     oracle.adf.share.jndi.FileSystemBackingStore     FileSystemBackingStore is being initialized
    FINE     507     0     oracle.adf.share.jndi.ContextImpl     Backing Store :null
    FINEST     506     15     oracle.adf.share.jndi.ContextImpl     The Context.PROVIDER_URL is /C:/Users/{me}/AppData/Roaming/SQL Developer/system3.2.10.09.57/o.jdeveloper.db.connection.11.1.1.4.37.59.48/connections.xml
    INFO     505     609     oracle.dbtools.raptor.utils.Connections     Connection Architecture duration:0
    FINER     497     78     oracle.jdevimpl.db.DBConnAddin     addins are loaded so database connections are now available
    FINE     496     0     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.SQLServerConnectionCreator for subtype SQLServer with oracle.dbtools.thirdparty.sqlserver.SQLServerConnectionCreator
    FINE     495     15     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.ODBCConnectionCreator for subtype ODBCBridge with oracle.dbtools.thirdparty.access.AccessConnectionCreator
    FINE     494     0     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.DB2ConnectionCreator for subtype DB2 with oracle.dbtools.thirdparty.db2.DB2ConnectionCreator
    FINE     493     1217     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.MySQLConnectionCreator for subtype MYSQL with oracle.dbtools.thirdparty.mysql.MySQLConnectionCreator
    FINEST     491     920     oracle.bali.xml.addin.XMLEditorAddin     msg to init log framework
    FINE     490     0     oracle.jdeveloper.db.adapter     DB Adapter warning: Replacing connection creator oracle.jdeveloper.db.adapter.OracleConnectionCreator for subtype oraJDBC with oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator

    Thanks a lot Gary.
    David

    Edited by: David-DT on 22-Oct-2012 02:31
  • 6. Re: SQLDeveloper slow on first launch
    Gary Graham Expert
    Currently Being Moderated
    David,

    Here are the summary results from the thread dump analyzer tool:
    Number of threads sleeping on a monitor - 6
    Number of deadlocks - 0
    Number of Monitors without locking threads - 0
    
    31% of all threads are sleeping on a monitor.
    
    This might indicate they are waiting for some external resource (e.g. database) which is overloaded 
    or not available or are just waiting to get to do something (idle threads).
    In an earlier post you said the debug setting shows a DBConnAddin entry in the Logging Page taking all the time, but it does not make any sense that a remote database would always get really busy just after you start your machine. So I would bet that some local process (or set of processes) hogs resources or otherwise blocks after booting up. Do you have a local database starting up or some anti-virus program doing some heavy-duty checking/updating at start-up?

    I recall a problem I had a few years ago transferring a huge email archive between my office and home desktop machines via flash-drive. The office machine had a different anti-virus configuration. Copying to disk and unzipping might take 6 to 8 minutes right after booting up, but if I waited 10 minutes the process only took 90 seconds. You might want to watch what Window Task Manager shows during these distinct time periods.

    Best Wishes,
    Gary
  • 7. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Hi Gary,
    When I say its slow after first boot, I didn't necessarily mean I load SQLDeveloper staight after I login. It could be hours after I've logged in before I actually launch SQLDeveloper. It's just whenever I do, the first launch takes about 6 minutes to load up. Looking at the system resources, it's not a resource issue at all. Is there nothing else that I can do to try and get to the bottom of the long load time? I thought an SSD might have been the answer (as everything else loads almost instantly). I just cant understand why SQLDeveloper is taking so long. Might be time to dust off TOAD! :) For others in the team, that takes about 2 seconds to load up.

    Edited by: David-DT on Oct 23, 2012 3:12 AM
  • 8. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Gary, do you know how to use JavaVisualVM (in C:\Program Files\Java\jdk1.7.0_07\bin\). Looks like it might be useful to work out what is going on when I launch SQLDeveloper. I however cannot make head nor tail of it :) !
  • 9. Re: SQLDeveloper slow on first launch
    Gary Graham Expert
    Currently Being Moderated
    David,

    Starting any program involves various phases, such as program loading and program initialization. With Java, the start-up process involves not only loading and initializing execution on our own class/jar files, but also the files required by the Java Virtual Machine. Possibly a user environment might start processes that use several different Java versions requiring loading and initialization of them all. Not everything may stay in memory.

    In general, loading files can be slowed down by disk fragmentation and anti-virus file scanning.

    So if the slow start-up occurs at times other than immediately post-boot, rather than worry about Java profiling programs, I think the next step is to investigate the possibility of:
    1. Disk fragmentation on the drive you load programs from.
    2. Other causes of slow loading times, like anti-virus interference, speed of data transfer from external drive, block-sizing, possible failures/repeat fetches.
    3. Minimizing the number of Java versions in use.

    It seems as though after your first load, Java and SQL Developer remain in the system cache, making subsequent start-ups much faster.

    -Gary

    Edited by: Gary Graham on Oct 23, 2012 10:31 AM
    Actually, reviewing the thread, you say anti-virus scanning on SQL Developer has been excluded. Also, that you (only?) use a large SSD. Sorry that I confused your system with the smaller SSD + external storage system mentioned in this other recent disussion:
    Re: SQL Developer wont open

    So how does having a SSD affect the size/use of system cache in Windows? Perhaps not all, one would hope.
  • 10. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Hi Gary,
    I'm not sure how using an SSD affects windows virtual memory to be honest. Just checked and I have 8Gb RAM and 8Gb Virtual Memory.
    In Java terms I have the following installed according to Control Panel:
    Java 7 Update 7
    Java 7 Update 7 (64-bit)
    Java SE Development Kit 7 Update 7 (64-bit)
    Java(TM) 6 Update 26
    Thanks
  • 11. Re: SQLDeveloper slow on first launch
    968934 Newbie
    Currently Being Moderated
    Just a quick update, discovered that the exclusion from Antivirus scan had not been done properly, and once sqldeveloper directory was properly added to the exclusion list of our antivirus software, startup of SQLDeveloper came down from 3-5 minutes, to 20-25 seconds :)
    Thanks all who offered up help, much appreciated.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points