Skip to main content link. Accesskey S
  • Log In
  • Help
  • IBM Logo
  • Lotus Symphony wiki
  • All Wikis
  • All Forums
  • Home
  • Product Documentation
  • Community Articles
  • Learning Center
  • IBM Redbooks
Community Articles Product Documentation Learning Center IBM Redbooks This category Lotus Symphony 3 Documentation Custom Search Scope...
Search
  • New Article
  • Share Show Menu▼
  • Subscribe Show Menu▼

About the Original Author

IBM contributorChao Huang
Contribution Summary:
  • Articles authored: 3
  • Articles edited: 0
  • Comments Posted: 0

Recent articles by this author

How to improve Symphony's performance on high configuration Mac machine

There is a way to improve Symphony's performance on high configuration Mac machine.

How to find the file used by Symphony

Do you want to know which file was modified or created by Symphony? This article will help you to find out the answer on Windows platform. 1. Install procmon.exe. You can get it on nlsdev31incominghchaotoolsprocmon.exe. 2. Launch procmon. We know that there are two processes for Symphony on ...

How to profile Symphony with JProfiler

This article will tell you how to profile Symphony with JProfiler

Community articleHow to profile Symphony with JProfiler

Added by IBM contributor Chao Huang | Edited by IBM contributor Chao Huang on October 28, 2010 | Version 3
expanded Abstract
collapsed Abstract
This article will tell you how to profile Symphony with JProfiler
Tags: Performance Java Profiling

As we know that JProfiler is a powerful Java profiling tools, which will trace memory allocation, cpu timestamp, thread status, etc.
In this article, we will guide you step-by-step to use it for Symphony. Let's get started.

Part One : Preparation

1. Install Symphony on your machine

2. Install JProfiler on your machine. You can get it from \\nlsdev31.cn.ibm.com\incoming\hchao\tools\JProfiler_wanglei


Part Two : Get Arguments

3. Launch Symphony by double click icon on desktop. Get the full command line for symphony.exe by procexp.exe.
You may get it like this :

"D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.base_6.2.1.20100902-0900\win32\x86\symphony.exe"
--launcher.suppressErrors
"-name" "IBM Lotus Symphony"
-personality "com.ibm.productivity.tools.standalone.personality"
-product "com.ibm.symphony.standard.branding.symphony"
"-com.ibm.symphony.standard.branding#process_args_command"
"-homepage"
-data "C:\Documents and Settings\Administrator/IBM/Lotus/Symphony"
-configuration "C:\Documents and Settings\Administrator/IBM/Lotus/Symphony/.config"
-plugincustomization "D:/sym2/install/sym100912/framework/rcp/plugin_customization.ini"
-vm "D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.j2se.win32.x86_1.6.0.20100225b-201009011900/jre/bin/classic/jvm.dll"
-startup "D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.base_6.2.1.20100902-0900/launcher.jar"
-vmargs
"-Dorg.eclipse.swt.fixCitrix=false"
"-Dosgi.framework.extensions=com.ibm.rcp.core.logger.frameworkhook,com.ibm.rds,com.ibm.cds"
"-Xscmx64m"
"-Xshareclasses:name=xpdplat_.jvm,controlDir=C:/Documents and Settings/Administrator/IBM/Lotus/Symphony/.config/org.eclipse.osgi,groupAccess,keep,singleJVM,nonfatal"
"-Xgcpolicy:gencon"
"-Xjit:noResumableTrapHandler"
"-Xmca8k"
"-Xminf0.1"
"-Xmn7m"
"-Xms48m"
"-Xmx256m"
"-Xnolinenumbers"
"-Xverify:none"
"-Xquickstart"
"-Xscmaxaot20m"
"-Xtrace:none"
"-Xzero"
-Drcp.home="D:\sym2\install\sym100912\framework"
-Drcp.data="C:\Documents and Settings\Administrator/IBM/Lotus/Symphony"
-Dosgi.splashPath="platform:/base/../../shared/eclipse/plugins/com.ibm.symphony.standard.branding,
platform:/base/../../shared/eclipse/plugins/com.ibm.symphony.standard.branding.nl1,
platform:/base/../../shared/eclipse/plugins/com.ibm.symphony.standard.branding.nl2,
platform:/base/../../shared/eclipse/plugins/com.ibm.symphony.standard.branding.nl3"
-Dcom.ibm.rcp.install.id="1284361640437"
-Drcp.install.config="multiuser"
-Declipse.registry.nulltoken="true"
-Dcom.ibm.pvc.webcontainer.useLocalAddress="true"
-Dosgi.nl.user="true"
-Djava.util.logging.config.class="com.ibm.rcp.core.internal.logger.boot.LoggerConfig"
-Dcom.ibm.pvc.webcontainer.port="0"
-Djava.security.properties="file:D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.base_6.2.1.20100902-0900/rcp.security.properties"
-Djava.protocol.handler.pkgs="com.ibm.net.ssl.www.protocol"
-Dosgi.hook.configurators.exclude="org.eclipse.core.runtime.internal.adaptor.EclipseLogHook"
-Drcp.osgi.install.area="D:\sym2\install\sym100912\framework\rcp\eclipse"
-Xbootclasspath/a:"D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.base_6.2.1.20100902-0900/rcpbootcp.jar;C:\notes\jvm\lib\ext\Notes.jar"


I marked different parts with different colors. The application arguments are marked in blue color. The JVM arguments are in red color.
The JVM used by Symphony is specified by keyword "-vm", which is in "D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.j2se.win32.x86_1.6.0.20100225b-201009011900/jre".
The main class passed to JVM is highlighted by keyword "-startup", that is "D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.base_6.2.1.20100902-0900/launcher.jar"


Part Three : Set Arguments for Session

4. Close Symphony and launch JProfiler.
Popup "General Settings" dialog by menu "Session ---> General Settings".

Add the specified JVM in step 3


click on "add" button in tabpage "Java VMs", input the location like this :
D:/sym2/install/sym100912/framework/rcp/eclipse/plugins/com.ibm.rcp.j2se.win32.x86_1.6.0.20100225b-201009011900/jre


5. Create a new session for Symphony by menu "Session ---> New session"
New Session


5.1 Input session name : Symphony
5.2 Choose sessin type : Local
5.3 Choose JVM : IBM JRE 1.6.0
5.4 Choose a directory as workspace
5.5 Input VM arguments from step 3 in red color. (please keep them in one line)
5.6 Input the main class mentioned in step 3.
5.7 Input application arguments from step 3 in blue color. (please keep them in one line)
5.8 Add jar path for more details. For example, if you want to know the details about homepage, please add path like this :
D:\sym2\install\sym100912\framework\shared\eclipse\plugins
D:\sym2\install\sym100912\framework\shared\eclipse\plugins\com.ibm.symphony.standard.branding_2.0.0.20100912-2000
D:\sym2\install\sym100912\framework\shared\eclipse\plugins\com.ibm.symphony.homepage_2.0.0.20100912-2000
Result



6. Click "OK" button on the "Session Settings" dialog. The "Session Startup" dialog will popup.
Sesssion Startup Dialog



6.1 Click "Edit" button for "Profiling settings". Choose "All features enabled, dynamic bytecode instrumentation". Click on "Customize Profiling Settings".
Session Settings



6.2 Switch to tabpage "miscellaneous", select on checkbox "Start with all dynamic views frozen" for section "Dynamic Views". Click "ok" button on the bottom.
Profiling Settings



6.3 Click "Edit" button for "Filter settings". Click on "add" button. Choose "Add inclusive filter". Input "com.ibm.symphony.". Click "ok" button
Filter Settings

make it clean


add the filter



6.4 Back to "Session Startup" dialog. Select on check box "Record CPU data on startup" and "Record allocations on startup". Click "ok" to finish the settings.
For Startup




Part Four : Run and Get result

7. There will be a warning dialog to popup. Please click ok to close it. Then Symphony will be launched by JProfiler.

8. Press "frozen" button on toolbar to pause the profiling.
frozen button



9. You will get memory info in "Memory Views"
Memory Views



10. You will get cpu info in "CPU Views"
CPU Views



11. You will get thread info in "Thread Views"
Thread Views




Part Five : Tips

12. If JProfiler can not launch Symphony, please try the following actions
1) reduce the memory occupancy by JVM arguments -Xms and -Xmx
2) change the profiling settings from "dynamic bytecode" to "CPU sampling"
3) change the JVM
expanded Attachments (0)
collapsed Attachments (0)
expanded Versions (4)
collapsed Versions (4)
Version Comparison     
VersionDateChanged by              Summary of changes
4Dec 1, 2010 4:31:34 AMChao Huang  IBM contributor
This version (3)Oct 28, 2010 6:16:50 AMChao Huang  IBM contributor
2Oct 28, 2010 6:11:24 AMChao Huang  IBM contributor
1Oct 28, 2010 4:41:15 AMChao Huang  IBM contributor
Copy and paste this wiki markup to link to this article from another article in this wiki.
Go ElsewhereStay ConnectedHelpAbout
  • IBM Collaboration Solutions wikis
  • IBM developerWorks
  • IBM Software support
  • Twitter LinkIBMSocialBizUX on Twitter
  • FacebookIBMSocialBizUX on Facebook
  • ForumsLotus product forums
  • BlogsIBM Social Business UX blog
  • Community LinkIBM Collaboration Solutions
  • Wiki Help
  • Forgot user name/password
  • Wiki design feedback
  • Content feedback
  • About the wiki
  • About IBM
  • Privacy
  • Accessibility
  • IBM Terms of use
  • Wiki terms of use