This blog is a continuation of my previous blog about customizing the SAP Design Studio client tool for performance and stability. The previous post was about JVM optimizations and memory tweaking. In this blog we will focus on debugging and memory dump options. We will also look in to other customization like the splash screen and work directory.
Memory management plays a critical role in performance. Unused objects in the heap should be recycled and made available for reallocation. This is taken care of by the JVM and is known as ‘Garbage Collection’. This is an automated process and it ensures good JVM performance. However, the strategy used for garbage collection (GC) is customizable.
Using multiple threads for GC will help in speedy recovery of unused memory and consequently, improved performance. To perform parallel GC, the processor should be able to handle multiple threads at a time and most modern systems can handle this. Parallel GC can be enabled using the JAVA parameter –XX:+UseParallelGC
Heap Memory Out of Bound
As mentioned in my previous post in this series, heap memory forms the basis of performance. Despite having enough memory allocated to the JVM and using effective GC strategy, the tool will still crash due to exceptions in the system, due to memory leaks or memory overflow. This in JAVA terms is called ‘Out of Memory Exception’. This exception will cause the JVM to crash and the tool will close as a result. To debug what went wrong, we can have the JVM create a memory dump when it crashes. We can analyze this memory dump file and trace the errors that caused the application to close. This option will be of a big help for SDK developers. We need to set the following parameters to create memory dumps.
If we have this parameter added to the JVM, it will create dump files in the application work directory, in case of memory exceptions.
This parameter can be used to collect dump files in a custom location. These dump files can be analyzed using JAVA Memory Analysis tools. While using custom locations for dumps, ensure that the users have write access to these locations.
Analysis-Config holds the user specific configurations for Design Studio and this defaults to the user’s home directory. All custom add-ons installed in the tool will be placed in the Analysis-Config directory. We can change the location of the Analysis-Config directory by editing the ‘Config.ini’ file located within the ‘Installation Directory/Configuration’ folder. This will help developers to save their config directory in a network drive and access it from any system they log in from.
For example: If the user’s network directory is mounted on Z: drive and we need the config directory to be placed in it, then
Once this change is done and Design Studio is launched, the Analysis-Config directory will be created in the above mentioned directory. When a custom add-on is installed, it will be placed in this directory.
Analysis-Workspace directory is similar to the eclipse workspace and it stores the user’s local repository and metadata for the tool. Since this holds the repository of the user, it would help if this is placed on a network drive, so he would be able to access his repository from anywhere he logs on from. Similar to the config directory, the workspace can also be placed in a custom location, as shown below.
The Analysis-Workspace will be initialized in the new location. This can be verified by navigating to the ‘Application’ menu and selecting ‘Open Repository Folder’. If the above customization worked, the custom location will open.
Finally, it is real fun to customize the look and feel of the client tool. In terms of look and feel, the most important customization would be changing the splash screen.
The actual splash screen image is splash.bmp file, located inside ‘Analysis-config/config/org.eclipse.equinox.launcher/com.sap.ip.bi.zen.product.branding_<version>/’ directory. To change the splash screen, replace it with your bitmap image of same size. This will provide a custom splash screen, when you launch the application.
To change the splash screen for all users in the system, search for the ‘com.sap.ip.bi.zen.product.branding_<version>.jar’ file in the ‘Install Dir/plugins’ directory and change the splash.bmp file located within the jar file. This will change the splash screen for all users in the system. While customizing the splash screen please adhere to SAP licensing terms and the SAP trademark logo.
Since SAP Design Studio is an Eclipse/JAVA based tool, there are a lot more customizations that can be applied to get better performance and stability. Please pass on your comments, questions about the tweaks discussed here and share your experiences as well !
Happy tweaking !