Friday, 28 August 2015

JDev 12c Performance Improvement tips

Hi All,

When working with ADF 12c project with JDev 12c(12.1.3.0.0) I faced issues related to J Developer slowness.
So, from the online I found few tips to improve the speed/performance of J Developer and documented here for my reference

1. Disable auto build on save
Tools -> Preferences -> Code Editor -> Save Actions -> Remove Build project on save(by Clicking on Save)

2. Change look and feel to Windows instead of Oracle theme
Tools -> Preferences -> Environment -> Look and Feel to ‘Windows’

3. Disable/Un-install updates which you are not using
Tools -> Features -> In Manage Features and Updates
Uncheck the updates which you are not using

4. In ide.conf file (located under Oracle home directory\jdeveloper\ide\bin)

AddVMOption  -Xms1024M
AddVMOption  -Xmx1024M

5. In jdev.conf file(located under Oracle Home Directory\jdeveloper\jdev\bin)

AddVMOption -Doracle.ide.osgi.buddy.delegate.resource.exempt.paths=META-INF/services/javax.xml.ws.spi.Provider
# optimize the JVM for strings / text editing
        AddVMOption -XX:+UseStringCache
        AddVMOption -XX:+OptimizeStringConcat
        AddVMOption -XX:+UseCompressedStrings

        # if on a 64-bit system, but using less than 32 GB RAM, this reduces object pointer memory size
        AddVMOption -XX:+UseCompressedOops

        # use an aggressive garbage collector (constant small collections)
        AddVMOption -XX:+AggressiveOpts

        # for multi-core machines, use multiple threads to create objects and reduce pause times
        AddVMOption -XX:+UseConcMarkSweepGC

6. Use Fast Swap Jdev feature to speedup the development
      Tools -> Preferences -> Run -> Weblogic -> Fast Swap

7. Use source editor for JSP and JSFF instead of design editor

     Tools -> Preferences -> File types -> Default editor

8. Also set high priority in the windows task manager as shown below
 
     Right click on jdev64w.exe -> set priority -> High



9. If you application does not use mds, locally you clean up contents of few folders in system directory on a daily basis. I see some bit of help by deleting contents of below folders daily. Do not delete folder itself. Just delete its contents.

.diagnostics , .history and .system cache 





Some of the Reference Blog link

1. Shay blog
https://blogs.oracle.com/shay/entry/is_your_jdeveloper_slow_it_sho

2. Oracle blog
https://blogs.oracle.com/angelo/entry/improving_the_performance_of_jdeveloper

3. http://waslleysouza.com.br/en/2014/04/increase-the-performance-of-jdeveloper-11g/

4. http://bexhuff.com/2012/09/jdeveloper-memory-and-performance

Thank you.

Sunday, 2 August 2015

Difference between BindingContext and BindingContainer in ADF


BindingContext is a container Object that holds a list of available data controls and data binding objects.It is the Java representation
of all cpx files marked in your adfm.xml file

BindingContext class is an interface that exposes generic methods to access the binding layer


The BindingContainer class represents Java representation of the page definition file.
To read bindings or executable entries present in the page definition we may need to access binding container object.

BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();