8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
1/53
java.sun.com/javaone/sf
| 2004 JavaOneSM Conference | Session TS-20241
Java 2 Platform,Enterprise Edition(J2EE) Application
Profiling: An Approachfor Developers
Lalitha Vishali
Principal Engineer
Pramati Technologieswww.pramati.com
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
2/53
| 2004 JavaOneSM Conference | Session TS-20242
Goal
What it takes to better J2EE application
performance numbers. Exploring theparadigm, the developers approach toProfiling and implementation details.
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
3/53
| 2004 JavaOneSM Conference | Session TS-20243
Do current tools in the market caterto specific details needed to profilea J2EE Application ??
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
4/53| 2004 JavaOneSM Conference | Session TS-20244
Agenda
The J2EEApplication Profiling Paradigm Motivation, existing tools, concerns
Approach to Profiling Framework: data collection, analysis, presentation layers
Dynamic proxies, bytecode instrumentation, JMX API Proof of Concept
Design overview
Bellwether parametersEJB, Web,Transaction, DB
Next Steps for the Framework Moving towards analysis, Thoughts for future
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
5/53| 2004 JavaOneSM Conference | Session TS-20245
Agenda
The J2EEApplication Profiling Paradigm Motivation, existing tools, concerns
Approach to Profiling Framework: data collection, analysis, presentation layers
Dynamic proxies, bytecode instrumentation, JMX API Proof of Concept
Design overview
Bellwether parametersEJB, Web, Transaction, DB
Next Steps for the Framework Moving towards analysis, Thoughts for future
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
6/53| 2004 JavaOneSM Conference | Session TS-20246
Optimization Challenges to Overcome
Identifying trouble spots made difficult byhuge number of components
Good grasp of J2EE application requiredfor configuring server
Application interaction with server is complex Configuration changes are typically chained
and may confound assessments
No tools available, task is specific to fewindividuals
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
7/53| 2004 JavaOneSM Conference | Session TS-20247
More Optimization Challenges
Tuning often very specific to applicationdesign and load characteristics Thumb-rules may not work
Manual methods expensive, take time
You need J2EE/server vendor experts
Are there tools that meet those special optimizationdemands of J2EE applications?
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
8/53| 2004 JavaOneSM Conference | Session TS-20248
Tools in the Market
OptimizeIT Substantially smaller set of features
JProbe Positioned as Java profilers
Memory profilers, allocation points and such Positioned as debuggers
Mercury LoadRunner, Astra LoadTest Load testers with simple timing collection modules
Wouldnt you like a server-agnostic J2EE profiler
that focuses on business methods and data pointsrelevant to tuning?
Why they dont meet J2EE application needs
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
9/53| 2004 JavaOneSM Conference | Session TS-20249
J2EE App Profiling: The Beneficiaries
ISVs Performance regression benchmarking
Comparison with master result
Can be automated with their build systems
SIs Reduces costs, cuts project development time Reduces performance engineering effort
Eliminates need for experts in J2EE app Corporations
What are their concerns? Why do they need J2EEapplication profilers? What is the business case?
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
10/53| 2004 JavaOneSM Conference | Session TS-202410
Concerns in the Production Scenario
Raw numbers without J2EE app relevancedont say much
Impressive graphs useless without intelligentanalysis in J2EE app context
Data pertinent to application tuning needed Just code level timings wont do
Spotting problem areas needing furtherperformance tuning
Macro-level tuning, not raw micro-level
method execution timings
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
11/53| 2004 JavaOneSM Conference | Session TS-202411
Proposed Paradigm: suo moto
Gain the know-how to performance-engineer your J2EE application
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
12/53
| 2004 JavaOneSM Conference | Session TS-202412
Proposed Paradigm: Requirements
Understand your J2EE environment
Capture all entry points Obtain a drill-down view of all execution stacks
Timing analysis on specific execution points
No change in application vendorsinfrastructure
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
13/53
| 2004 JavaOneSM Conference | Session TS-202413
Agenda
The J2EE Application Profiling Paradigm Motivation, existing tools, concerns
Approach to Profiling Framework: data collection, analysis, presentation layers
Dynamic proxies,bytecode instrumentation,JMX API Proof of Concept
Design overview
Bellwether parametersEJB, Web, Transaction, DB
Next Steps for the Framework Moving towards analysis, Thoughts for future
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
14/53
| 2004 JavaOneSM Conference | Session TS-202414
Framework Architecture
DataGraphs
Reports
Config
Changes
Data
Application ServerInterceptor Layer
PersistenceMechanism
Rules Engine
(XML Based)
JMX Agent
BytecodeInstr.
DynamicProxy
Sniffers
Callbacks Processing /Analysis
DataCollection
Engine
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
15/53
| 2004 JavaOneSM Conference | Session TS-202415
Framework: Instrumentation Points
All spec-mandated callbacks
Servlet / JSP page service() methods Business methods in Bean Implementation
classes
Containers pre- and post-processing beforeand after the bean life cycle methods
Transaction begin and end calls Resource-related calls
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
16/53
| 2004 JavaOneSM Conference | Session TS-202416
Approach for Instrumentation
Bytecode Instrumentation and Reflection API To instrument pre- and post-processing calls
Dynamic Proxies Instrument the timing of life cycle methods
Determine occurrence of callbacks to life cyclemethods
Spec-mandated callbacks
Callbacks can be captured thru BytecodeInstrumentation or Dynamic Proxies
E.g., ejbStore(), ejbLoad() etc.
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
17/53
| 2004 JavaOneSM Conference | Session TS-202417
More Approaches for Instrumentation
Timing Diagnostic Framework Builds the drill-down execution paths
Times the key execution points
JMX implementationJSR-077 Data engine
Can obtain any statistics required for inference Vendor-neutral
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
18/53
| 2004 JavaOneSM Conference | Session TS-202418
Using Dynamic Proxy Stub Wrappers
Obtain a Context on Application ServersJNDI API tree
Lookup on stub of a given beans homeinterface
This stub is to be replaced by a proxy To create a proxy, we need
Context classloader, InvocationHandler,
the interface
InvocationHandlers invoke() handles requiredprocessing
Before and after the call to the stubs methods
H D i P St b
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
19/53
| 2004 JavaOneSM Conference | Session TS-202419
How Dynamic Proxy Stub
Wrappers Work
Stub(BeanHome1)
CustomizedProxy Generator
Dynamic Proxy of BeanHome1 Stub
Bind Dynamic Proxy with same JNDI name
Application Server
InvocationHandlers invoke()has the instrumented profiling
BeanHome1
JNDI Tree
Class
Loader
Class
Loader
Home
Interface
Home
Interface
InvocationHandler
Invocation
Handler
Obtain Contextic.lookup(BeanHome1)
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
20/53
| 2004 JavaOneSM Conference | Session TS-202420
Dynamic Proxies: Sample Code
public class DynamicProxyGenerator implementsRemote
{stub=context.lookup();homeIntf = Class.forName();proxy =
Proxy.generateProxy(ContextClassloader,homeIntf, MyInvocationHandler);context.bind(, proxy);
}
public class MyInvocationHandler implementsInvocationHandler {public Object invoke(Object proxy,
Method m1,Object[] args){return m1.invoke(delegate, args);}
}
Dynamic Proxy Generation for Home Stub
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
21/53
| 2004 JavaOneSM Conference | Session TS-202421
Bootstrap Classloader
Bytecode Instrumentation: Architecture
J2EE ApplicationApplication Server
ClassEnhanced
Extension Classloader
System Classloader
MYEJB
Class Preprocessor
Preprocessor
aware
Classloader
MYEJB
Classpath
Bytecode Instrumentation:
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
22/53
| 2004 JavaOneSM Conference | Session TS-202422
Bytecode Instrumentation:
Configuration
Class Pre-processor:
Kicks-in just before Class loading Pre-processes Java classes
Uses a low-level API for bytecode modification
Class is enhanced without impacting class contract
Chained Pre-processors:
Set of pre-processors configured to handle a class Specific pre-processor enhances specific points
in a class
Class is modified by its pre-processor chain
Pre-processor Centric Configuration
Bytecode Instrumentation:
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
23/53
| 2004 JavaOneSM Conference | Session TS-202423
Bytecode Instrumentation:
Schematic API
// Schematic API of a preprocessorpublic interface ClassPreProcessor
{public abstract void initialize(Hashtable
hashtable);
public abstract byte[] preProcess(StringclassName, byte almostReadyBytecode[]);
}
Popular API : BCEL JakartaJavassist
Pre-processor Contract
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
24/53
| 2004 JavaOneSM Conference | Session TS-202424
Agenda
The J2EE Application Profiling Paradigm Motivation, existing tools, concerns
Approach to Profiling Framework: data collection, analysis, presentation layers
Dynamic proxies, bytecode instrumentation, JMX API
Proof of Concept Design overview
Bellwether parametersEJB, Web, Transaction, DB Next steps for the Framework
Moving towards analysis, Thoughts for future
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
25/53
| 2004 JavaOneSM Conference | Session TS-202425
Implementation POC
Timing details for critical J2EE applicationexecution points JSP/Servlet service() method execution time
EJB business method execution time
Prepared statement execution time
MDB onMessage() call
Drill-down details from entry points Show a hierarchical view of method execution
Diagnostics Framework: What is expected?
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
26/53
| 2004 JavaOneSM Conference | Session TS-202426
Diagnostics Framework Design
Link passes Taskpath in Querystring
HistogramData
Hits, Average,Cumulative counts
Tagcomponentfor
Histogram data
Tagcomponentfor
Timing data
TS
Tasknode3
TS
Tasknode2
TS
Tasknode1
Time Statistic. TimingMBean returns it for a TaskpathTSA list of all drilldown linksTaskpath
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
27/53
| 2004 JavaOneSM Conference | Session TS-202427
Instrumentation: Bellwether Parameters
Exploring streamwise the list of tuneableJ2EE application features EJB
Web
Transaction
Resource
The challenge is in making the set exhaustive
EJB Architecture Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
28/53
| 2004 JavaOneSM Conference | Session TS-202428
EJB Architecture Diagnostics
Instrumentation
Browser
Activation time
Store time
Memory
Database
Connection Pool
Load time
Instrumentation Points
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
29/53
| 2004 JavaOneSM Conference | Session TS-202429
EJB Architecture Diagnostics
Dynamic Proxy StubWrapper
Time spent on MDBsonMessage() call
Dynamic Proxy StubWrapper ejbCreate() andejbStore() calls
Time spent creating a bean instance
Dynamic Proxy StubWrapper
Time spent during load / store The ModalityThe Parameter
Instrumentation Points and the Modality
EJB Architecture Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
30/53
| 2004 JavaOneSM Conference | Session TS-202430
EJB Architecture Diagnostics
Instrumentation
Transaction Management
Persistence Management
Security Management
EJB, JNDI Contexts
Callback methods
Client
Request
EJB Container
Instrumentation Points
EJB A hit t Di ti
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
31/53
| 2004 JavaOneSM Conference | Session TS-202431
EJB Architecture Diagnostics
Bytecode InstrumentationTime spent for locking a
bean instanceDynamic Proxy Stub WrapperTime spent during Activation/
Passivation
Bytecode InstrumentationTime spent for Pre-/Post-
Processing for any beanmethod call
Dynamic Proxy Stub WrapperBusiness MethodExecution Time
The ModalityThe Parameter
Instrumentation Points and the Modality
EJB A hit t Di ti
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
32/53
| 2004 JavaOneSM Conference | Session TS-202432
EJB Architecture Diagnostics
Bytecode
Instrumentation
Time spent acquiring and releasinga lock
BytecodeInstrumentation
Time spent waiting for a lock on PK
BytecodeInstrumentation
Total Bean Alive Time
BytecodeInstrumentation
Time spent waiting on a pool toget a bean
The ModalityThe Parameter
Instrumentation Points and the Modality
EJB Architecture Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
33/53
| 2004 JavaOneSM Conference | Session TS-202433
EJB Architecture Diagnostics
Screenshot
Hits Avg Time Cumulative Time
Drilldown viewMethod Execution Time
EJB Architecture Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
34/53
| 2004 JavaOneSM Conference | Session TS-202434
g
Screenshot
Timing Beans Life Cycle MethodCallbacks
Web Diagnostics Instr mentation
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
35/53
| 2004 JavaOneSM Conference | Session TS-202435
Web Diagnostics Instrumentation
Diagnostics FrameworkTracing the Execution PathFrom Entry points
Bytecode Instrumentation,JMX API
Service MethodExecution Time
The ModalityThe Parameter
Request
Web Container
Instrumentation
Pointfor Timing
Response Rate
1. Compiles the jsp
2. Executes _jspService()1. Compiles the jsp2. Executes _jspService()Browser
Instrumentation Points and the Modality
Web Diagnostics Screenshot
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
36/53
| 2004 JavaOneSM Conference | Session TS-202436
Web DiagnosticsScreenshot
Service Method Execution Times
Transaction Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
37/53
| 2004 JavaOneSM Conference | Session TS-202437
g
Instrumentation
Tx1
Tx2
Tx3
Request
Commit
Rollback
Instrumentation PointsApplication server
Transaction Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
38/53
| 2004 JavaOneSM Conference | Session TS-202438
Transaction Diagnostics
Bytecode InstrumentationTime spent committing aCMT/BMT
Bytecode InstrumentationTime spent completion ofCMT/BMT
Bytecode InstrumentationTime spent rolling back aCMT/BMT
Bytecode InstrumentationAverage Time spent on
transaction commit/rollback
Bytecode Instrumentationof Beans post-processing
Average Time spent ontransaction completion
The ModalityThe Parameter
Instrumentation Points and the Modality
Resource Diagnostics Instrumentation
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
39/53
| 2004 JavaOneSM Conference | Session TS-202439
Resource Diagnostics Instrumentation
Browser
Connection Pool
Database
Response
New Connection
Connection in
Transaction Cache
Application
ServerApplication
Server
Instrumentation Points
Resource Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
40/53
| 2004 JavaOneSM Conference | Session TS-202440
Resource Diagnostics
JMX APIWait time to obtain connection
JMX APITime spent on prepared statement execution
JMX APIWait time to obtain connection from pool
JMX APIConnection Use Time
JMX APIWaiting Thread Time
TheModality
The ParameterInstrumentation Points and the Modality
Resource Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
41/53
| 2004 JavaOneSM Conference | Session TS-202441
Resource Diagnostics
JMX APIPrepared statements created afresh
JMX APIPrepared statements obtainedfrom cache
JMX APITime taken to obtain prepared
statement
JMX APIConnections created afresh
The ModalityThe Parameter
Instrumentation Points and the Modality
Resource Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
42/53
| 2004 JavaOneSM Conference | Session TS-202442
Screenshot
Hits Avg Time Cumulative Time
Resource timings in Method executioncontext
Resource Diagnostics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
43/53
| 2004 JavaOneSM Conference | Session TS-202443
Screenshot
Datasource timing details
Agenda
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
44/53
| 2004 JavaOneSM Conference | Session TS-202444
Agenda
The J2EEApplication Profiling Paradigm Motivation, existing tools, concerns
Approach to Profiling Framework: data collection,analysis,presentation layers Dynamic proxies, bytecode instrumentation, JMX API
Proof of Concept Design overview
Bellwether parametersEJB, Web, Transaction, DB
Next Steps for the Framework Moving towards analysis, Thoughts for future
Bean Concurrency
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
45/53
| 2004 JavaOneSM Conference | Session TS-202445
Bean Concurrency
Tabulate Frequency of Transaction participation (say, tp)
Frequency of Data store modifications (say, dm)
Average Number of threads waiting on Activebean instances (say, t)
Inference:
Compute the following ratio :dm
r = -------tp
If r is low, and t is high, suggest usage of OCC
Similarly can infer for suggestion of
Exclusive, Database or ReadOnly Concurrency
Bean Pool Sizes
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
46/53
| 2004 JavaOneSM Conference | Session TS-202446
Bean Pool Sizes
Entity Beans Min Bean Pool Size
Tabulate Number of Active Bean instances vs. Time
Max Bean Pool Size Compute Average Bean Holding Time for a client
Average number of client requests over Holding time= Bean Pool size
To avoid I/O due to Bean Passivation
Maximum number of client requests over Holding time
= Bean Pool size
Bean Load & Store Control Semantics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
47/53
| 2004 JavaOneSM Conference | Session TS-202447
Bean Load & Store Control Semantics
Finders execute load Allows finders to load bean when finder is called
Group Loading Set of fields in the group are loaded with the EJB
Delay Database Insert Until Insert is called after ejbPostCreate() This avoids one database roundtrip
Lazy loading semantics BLOB/CLOB large varchar fields
Resource & Transaction Semantics
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
48/53
| 2004 JavaOneSM Conference | Session TS-202448
Connection Pool Usage Analysis This suggests appropriate pool sizes
Prepared statement execution times Suggests the one whose resultset needs caching
Transaction Usage Analysis
Tabulate frequency of transaction suspension Re-examine method causing it
Isolate finders that return single EJB Suggest usage of findByPK instead
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
49/53
java.sun.com/javaone/sf
| 2004 JavaOneSM Conference | Session TS-202449
Demo
| 2004 JavaOneSM Conference | Session 202449
Demo
J2EE Application Diagnostics
Summary
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
50/53
| 2004 JavaOneSM Conference | Session TS-202450
y
Try the suggested Approach to J2EEApplication Profiling
Allows easy Performance Engineering for developers
Proof of Concept design provides for good Benchmarktest numbers
Good configuration suggestions in EJB, Web, Transactionand DB parameters
For enhancements
Arrive at a Comprehensive set of tuning parameters
Build Analysis Reports suggesting requiredconfiguration changes
Better J2EE Application Performancenumbers now well within developerspurview
For More Information
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
51/53
| 2004 JavaOneSM Conference | Session TS-202451
Bytecode Instrumentation http://besee.sourceforge.net/besee-1-
x/overview/architecture.html
Jakarta's BCEL:http://jakarta.apache.org/bcel/manual.html
Dynamic Proxies to layer new functionality
http://java.sun.com/developer/TechTips/txtarchive/2000/May00_StuH.txt
Dynamic Proxy Classes
http://java.sun.com/j2se/1.3/docs/guide/reflection/proxy.html
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
52/53
java.sun.com/javaone/sf
| 2004 JavaOneSM Conference | Session TS-202452
Q&ADemo
| 2004 JavaOneSM Conference | Session 202452
Q&A
Lalitha Vishali
8/22/2019 Ts2024 - Java2 Platform, Enterprise Edition (J2EE) Application Profiling - An Approach for Developers
53/53
java.sun.com/javaone/sf
| 2004 JavaOneSM Conference | Session TS-202453
Java 2 Platform,
Enterprise Edition(J2EE) Application
Profiling: An Approachfor Developers
Lalitha Vishali
Principal Engineer
Pramati Technologies
www.pramati.com