<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;A0cERnwyeyp7ImA9WhRaFE4.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526</id><updated>2012-02-16T16:36:47.293-08:00</updated><category term="linux" /><category term="business transactions" /><category term="packages" /><category term="apm" /><category term="drill down" /><category term="introduction" /><category term="java" /><category term="appdynamics" /><category term="root cause" /><category term="heap dump" /><category term="Eclipse" /><category term="tutorial" /><category term="checklist" /><category term="windows" /><category term="updater" /><category term="performance" /><category term="MAD" /><category term="ubuntu" /><category term="memory" /><category term="architecture" /><category term="Automatic installer" /><category term="memory leak" /><title>OMG! I'm lovin' IT</title><subtitle type="html">Making IT look good!</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://omgimlovinit.blogspot.com/" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>8</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/OmgImLovinIt" /><feedburner:info uri="omgimlovinit" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUIBQ38-fCp7ImA9WhRSE00.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-1540117000898776585</id><published>2011-11-14T12:09:00.001-08:00</published><updated>2011-11-14T12:45:52.154-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-14T12:45:52.154-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="checklist" /><category scheme="http://www.blogger.com/atom/ns#" term="introduction" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="architecture" /><title>Performance Architecture Checklist</title><content type="html">&lt;b&gt;&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;This checklist can be used to help you in your design for a scalable application. The idea is, you take performance into consideration &lt;/span&gt;&lt;i style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;while &lt;/i&gt;&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;you are designing your architecture, not after done.&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;You will need to think carefully, which matters apply to you and how you will have to implement them.&lt;/span&gt;&lt;br /&gt;
&lt;span style="vertical-align: baseline;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;This is not a silver bullet, but a mental exercise.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Deployment and Infrastructure&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Use distributed architectures appropriately. Do not introduce distribution unnecessarily!&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Carefully select appropriate distributed communication mechanisms.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Locate components that interact frequently within the same boundary or as close to each other as possible.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Take infrastructure restrictions into account in your design&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Consider network bandwidth restriction&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Identify resource restrictions.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ensure your design does not prevent you from scaling up.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Ensure your design does not prevent you from scaling out and it uses logical layers, does not unwittingly introduce affinity, and support load balancing!&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Coupling and Cohesion&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your design is loosely coupled.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Exhibit appropriate degrees of cohesion in your design and group together logically related entities, such as classes and methods.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div dir="ltr"&gt;
&lt;span style="font-family: Arial; white-space: pre-wrap;"&gt;&lt;span style="font-size: large;"&gt;&lt;b&gt;Communication&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Interface do not enforce chatty communication.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your application only makes remote calls where necessary. Impact is minimized by client-side validation, client-side caching, and batching of work.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Optimize remote data exchange.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Choose appropriate secure communications mechanisms.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Use message queues to decouple component parts of your system.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Mitigate the impact of long-running calls by using message queues, “fire-and-forget” approaches, and asynchronous method calls.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Concurrency&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Watch out which types you use. Many basic types have locking behaviour. Example HashMap, instead when in doubt, use Concurrent(HashMap).&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Carefully consider lock granularity. Synchronised(writes &amp;gt; reads) or locks (reads &amp;gt; writes).&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your application acquires shared resources and locks late and releases them early to reduce contention.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Choose an appropriate transaction isolation level.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your application uses asynchronous execution for I/O bound tasks and not for CPU bound tasks.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Resource Management&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your design supports and makes effective use of pooling.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your application acquires resources late and releases them early.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Caching&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Use caching for data that is expensive to retrieve, compute, and render.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Cache appropriate data such as relatively static Web pages, specific items of output data, stored procedures parameters, and query results.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Do not use caching for data that is too volatile.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Select an appropriate cache location.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Select an appropriate cache expiration policy.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;State management&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Your design favors stateless components. Or, you considered the negative impact of scalability if you decided to use stateful components.&lt;/span&gt;&lt;/li&gt;
&lt;li style="list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline;"&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;If you use Web services, you also use a message-based stateless programming model.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Make objects you want to store serializable.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Consider performance impact of what you put in your session.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Use statistics to help you, get your thread pool and sessions duration wright.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Data structures and Algorithms&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Ensure your design uses appropriate data structures.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Use custom collections only where absolutely necessary.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Data Access&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Pass data across the layers by using the most appropriate data format. Carefully consider the performance implications.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Use stored procedures for complex data access.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;As rule: Don’t use loops, when accessing data with your ORM(example hibernate).&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Only process the data that is required. (Less is more)&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Where appropriate, provide data paging solution for large result sets.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Exception Handling&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Do not use exceptions to control regular application flow.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;example: if you control a Single Sign On system, when the user mistypes his password. This is a normal flow! &lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Structured exception handling is the preferred error handling mechanism. Do not rely on error codes.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Only catch exceptions for a specific reason and when it is required.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Monitoring&lt;/span&gt;&lt;/h2&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Implement monitoring in your application, that can be turned on and off. When turned of this should have zero impact.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Implement Application Monitoring. Showing you where time is being spend in your application&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Implement User Performance Monitoring. This will let your see where the user is spending his time.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Allow tracing over multiple tiers.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Automatically monitor slow request.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Implement sampling of your data. This will lower the impact when you need to monitor your application.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 15px; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="vertical-align: baseline; white-space: pre-wrap;"&gt;Use the statistics for your monitoring, when you are thinking of making adjustments to your architecture.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 dir="ltr"&gt;




&lt;span style="font-family: Arial; vertical-align: baseline; white-space: pre-wrap;"&gt;Common Sense&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;Use it!&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;This checklist originated/(largely based) from the &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff647699.aspx"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;Microsoft best practices&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. Please continue reading &lt;/span&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/ff647699.aspx"&gt;&lt;span style="color: #000099; font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;there&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family: Arial; font-size: 15px; vertical-align: baseline; white-space: pre-wrap;"&gt;. It’s a very good site with lots of help full tips, while being only slightly outdated. This show that performance is not technology specific.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-1540117000898776585?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/igGF5QnG-XzEHvd7VbvYJ6_aRjw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/igGF5QnG-XzEHvd7VbvYJ6_aRjw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/igGF5QnG-XzEHvd7VbvYJ6_aRjw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/igGF5QnG-XzEHvd7VbvYJ6_aRjw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/KdrxgXUWZyw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/1540117000898776585/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/11/performance-architecture-checklist.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/1540117000898776585?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/1540117000898776585?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/KdrxgXUWZyw/performance-architecture-checklist.html" title="Performance Architecture Checklist" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/11/performance-architecture-checklist.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBQ30-fCp7ImA9WhRSEE8.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-8975765803526417566</id><published>2011-11-09T23:42:00.000-08:00</published><updated>2011-11-11T06:57:32.354-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-11T06:57:32.354-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="introduction" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><title>Performance Requirements?</title><content type="html">&lt;br /&gt;
&lt;h1 dir="ltr" id="internal-source-marker_0.5683163125067949"&gt;






&lt;span style="font-family: Arial; font-size: 24pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="http://omgimlovinit.blogspot.com/2011/11/start-towards-perfomance.html" target="_blank"&gt;Design for performance: Requirements&lt;/a&gt;&lt;/span&gt;&lt;/h1&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Before designing an architecture, we should know what we want. Our goal here is to include performance as part of the solution, not part of the problem.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;The real problem for me in completing this document with my customer, is the customer didn’t think of response times while trying to solve his problems. That’s why I suggest always giving the user a couple of choices. Ask them what feels right, what feels acceptable? Not, want they want, because most of the time, they don’t know or it isn’t realistic. I will discuss this subject (Performance Psychology) later on, in on of my next blogs. &lt;/span&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;"&gt;General&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Response time(ms)&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: It’s common to here to make a difference between writes and reads operations(get/post).&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: circle; vertical-align: baseline;"&gt;&lt;span style="font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Average(ms)&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: What do you expect?&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: circle; vertical-align: baseline;"&gt;&lt;span style="font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Maximum response time(ms)&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: What is acceptable?&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div dir="ltr" style="margin-bottom: 0pt; margin-left: 36pt; margin-top: 0pt;"&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Note&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: I normally split this up in, maximum time under normal circumstances and while the system is under heavy load. &lt;/span&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Throughput&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;(hourly of minutes): maximum amount of requests your system should be able to handle. Think of spikes.&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Concurrent Users&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: How many users will be using the system at the same time.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"&gt;User type&lt;/span&gt;&lt;/h3&gt;
&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Depending on the type of user using the system, these will vary enormously.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 12pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Interactive(Human)?&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt; Is a person using the system?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Synchronous &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&amp;nbsp;or &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;As-synchronous&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: The “micro”second the user can continue working, is the time you should measure.&lt;span class="Apple-tab-span" style="white-space: pre;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 12pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Batch/Scheduled(Machine)&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;? Is an application using your application? Define your time window and don’t forget, you are not alone! Other batch jobs of application can be running at the same time.&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Scope&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Define these previous requirements for the entire application and for specific business cases.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Application requirements&lt;/span&gt;&lt;/h3&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;The application requirements are good defaults. These requirements will also &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;help &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;you decide what kind of hardware you will need.&lt;/span&gt;&lt;br /&gt;
&lt;h3 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 14pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Business requirements&lt;/span&gt;&lt;/h3&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Performing Business logic is key, so performance should play a part in here as well.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Eligible Business cases:&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Frequently used scenarios&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Performance-intensive scenarios&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Business-critical scenarios&lt;/span&gt;&lt;/li&gt;
&lt;li style="font-family: Arial; font-size: 11pt; list-style-type: disc; vertical-align: baseline;"&gt;&lt;span style="font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Scenarios of special interest&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;For business cases add the following requirement:&lt;/span&gt;&lt;br /&gt;
&lt;h4 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Task driven (Usability/Performance)&lt;/span&gt;&lt;/h4&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Task completion&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: How much time would the person need to accomplish the task?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Task feedback loop&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: How fast can we give the user feedback about his task?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;This may not sound like a performance criteria, but here you can gain the most time. By smart interface design, you can solve problems faster(performance) and better.&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 12pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h2 dir="ltr"&gt;






&lt;span style="font-family: Arial; font-size: 18pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Technical&lt;/span&gt;&lt;/h2&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Resource cost&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: CPU, file access, network, data access....&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;You will have limitations, either from your own system(hardware), or an other systems you are working with.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Volatile data&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: Decide how volatile the data(ready to change) is.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style="font-family: Arial; font-size: 11pt; white-space: pre-wrap;"&gt;&lt;i&gt;Very Volatile&lt;/i&gt;(data changes often): Make the data you need as small as possible.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;i style="font-family: Arial; font-size: 11pt; white-space: pre-wrap;"&gt;Not Volatile&lt;/i&gt;&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 11pt; white-space: pre-wrap;"&gt;(data &lt;/span&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;doesn't&lt;/span&gt;&lt;span style="font-size: 11pt; white-space: pre-wrap;"&gt; change often): Caching maybe? It’s not a must, but think about it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;Most data lays somewhere in between, so always be&amp;nbsp;careful, how much data you need(less is more).&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Scalable&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;: This is closely related to the resource cost. You should watch out for bottlenecks here. Ask yourself the question: In case my application grows, where will it have the most impact? Can we handle this additional load, or can we scale it(example: more hardware)? This question will be handled in my next blog post. (Scalable Architecture)&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;Would you like to know more:&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.testingreflections.com/node/view/4432"&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.testingreflections.com/node/view/4432&lt;/span&gt;&lt;/a&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/doc_perf_reqs.htm"&gt;http://publib.boulder.ibm.com/infocenter/pseries/v5r3/index.jsp?topic=/com.ibm.aix.prftungd/doc/prftungd/doc_perf_reqs.htm&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.perftestplus.com/resources/requirements_with_compuware.pdf" target="_blank"&gt;http://www.perftestplus.com/resources/requirements_with_compuware.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;Remember: &lt;i&gt;Performance is a part of solving the problem, it doesn’t stand alone!&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;These are my two cents. In case you have something to add, or even better, something to take away(perfect design). Do tell! &amp;nbsp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-8975765803526417566?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JXm46q4d8lG3JeTLudvyIoJM5Pg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JXm46q4d8lG3JeTLudvyIoJM5Pg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JXm46q4d8lG3JeTLudvyIoJM5Pg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JXm46q4d8lG3JeTLudvyIoJM5Pg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/CsVw-_UbU-c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/8975765803526417566/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/11/performance-requirements.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/8975765803526417566?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/8975765803526417566?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/CsVw-_UbU-c/performance-requirements.html" title="Performance Requirements?" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><thr:total>0</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/11/performance-requirements.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0cEQnw9cSp7ImA9WhRTGUw.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-9000556039672206537</id><published>2011-11-04T10:39:00.000-07:00</published><updated>2011-11-09T23:43:23.269-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-09T23:43:23.269-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="apm" /><title>Start towards Perfomance</title><content type="html">&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Patience is a virtue&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;, but I can’t wait to get my job done. My friend said to me:"Fast, Good, Cheap, pick any 2". Where I replied: How &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Fast&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; are we talking about?&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;In &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;Top Gear&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;, people are always talking about the feelings you get when see a car. When you drive it. The feeling of &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;speed &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;is one that stands out for me. Why? A car is made too bring you from point A to point B, as fast possible and as comfortable as possible and now also as cheap as possible. A business website has similar goals, they want the customer to find they way through their site and in too their bank account. &lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;a href="http://omgimlovinit.blogspot.com/2011/11/performance-requirements.html" target="_blank"&gt;Design for performance&lt;/a&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;is &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;more than tuning&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;, it’s providing a highway from point A to point B, in a tuned up the luxe sport car, where you can feel the wind through your hair. Good usability and good performance should go hand in hand.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;This is not done over night, building an application that can handle speed and success takes time and proper testing, so don’t crash when you shave a corner. &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Structured Load and Stress&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; testing &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;reduces risk&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt; of this happening.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;There is an other way... What if there were no traffic jam’s, ever? Wouldn’t that safe you more time than a pimped up super car? I know what you are thinking, I would rather have the pimped up super car. But for just a minute, be honest with yourself. If you never had traffic jams, wouldn’t you be happier? Just a little? Think of time you’ll safe. For cars this sounds like science fiction, but for applications it can work. Welcome in the world of &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-weight: bold; vertical-align: baseline; white-space: pre-wrap;"&gt;Application Performance Management&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;. Here we can intervene &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;proactive&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;, so &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; font-style: italic; vertical-align: baseline; white-space: pre-wrap;"&gt;no accidents in production&lt;/span&gt;&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 11pt; vertical-align: baseline; white-space: pre-wrap;"&gt;So please join me in this series of blogs, discovering ways how performance improves your day to day job and how easily to accomplish it.&lt;/span&gt;&lt;span style="vertical-align: baseline;"&gt; &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;Feedback is welcome. I will try to answer your questions to the best of my &lt;/span&gt;&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;abilities, when I talk about that subject.&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="font-family: Arial; font-size: 15px; white-space: pre-wrap;"&gt;As a personal challenge, I will be updating this blog weekly. Until I get tired of it or I find something more interesting.&lt;/span&gt;
&lt;br /&gt;
&lt;span style="font-family: Arial;"&gt;&lt;span style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-9000556039672206537?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/DMclb1Cgv9SO0GFJUNm-DVHc2Fk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DMclb1Cgv9SO0GFJUNm-DVHc2Fk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/DMclb1Cgv9SO0GFJUNm-DVHc2Fk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/DMclb1Cgv9SO0GFJUNm-DVHc2Fk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/XrXWxeiLIGs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/9000556039672206537/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/11/start-towards-perfomance.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/9000556039672206537?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/9000556039672206537?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/XrXWxeiLIGs/start-towards-perfomance.html" title="Start towards Perfomance" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><thr:total>2</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/11/start-towards-perfomance.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcCSHc8cCp7ImA9WhRTEkg.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-5297762828708413550</id><published>2011-11-02T09:44:00.000-07:00</published><updated>2011-11-02T09:57:49.978-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-11-02T09:57:49.978-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="drill down" /><category scheme="http://www.blogger.com/atom/ns#" term="business transactions" /><category scheme="http://www.blogger.com/atom/ns#" term="appdynamics" /><category scheme="http://www.blogger.com/atom/ns#" term="root cause" /><category scheme="http://www.blogger.com/atom/ns#" term="memory" /><category scheme="http://www.blogger.com/atom/ns#" term="apm" /><title>Performance Should Be Free</title><content type="html">&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: x-large;"&gt;Performance
Should Be FREE! Version 2!&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Today I
hope to add another free tool to your utility belt. To help you resolve your
bottlenecks in &lt;b&gt;production &lt;/b&gt;faster than before.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;b&gt;&lt;a href="http://www.appdynamics.com/" target="_blank"&gt;AppDynamics Lite version 2&lt;/a&gt;&lt;/b&gt;. This free profiler/monitor uses your “Business Logic” to visualize
the performance problems. &amp;nbsp;Discover why
your search- of checkout-“transaction” is slow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://2.bp.blogspot.com/-T_lSND0yiLc/TrFwbCkN2hI/AAAAAAAAAxg/hBS_XkwInA8/s1600/freedownload_header_img.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="111" src="http://2.bp.blogspot.com/-T_lSND0yiLc/TrFwbCkN2hI/AAAAAAAAAxg/hBS_XkwInA8/s400/freedownload_header_img.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;a href="http://www.appdynamics.com/products-free-download.php" target="_blank"&gt;Once you installed&lt;/a&gt;&amp;nbsp;AppDynamics will automatically start detecting your &lt;a href="http://omgimlovinit.blogspot.com/2011/07/know-where-to-look-for-bottlenecks.html" target="_blank"&gt;business transactions&lt;/a&gt;. If something spikes your interest, you can right click the
transaction and ask it to collect samples aka snapshot. These snapshots contain&amp;nbsp;stack traces&amp;nbsp;with method execution times. For example.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;com.sample.domain.Cart.checkout(300
ms)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Also
external calls, like webservices and SQL statements are collected.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://3.bp.blogspot.com/-gSOfmRCClis/TrFwuHnnCQI/AAAAAAAAAxo/XkKO6KIj9uk/s1600/Screen-Shot-2011-10-12-at-1.09.20-PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="270" src="http://3.bp.blogspot.com/-gSOfmRCClis/TrFwuHnnCQI/AAAAAAAAAxo/XkKO6KIj9uk/s400/Screen-Shot-2011-10-12-at-1.09.20-PM.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;o:p&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;New in
version 2, is the trending of MBeans through JMX. This might not get you excited,
but you can also add alerting, so receive a mail if a monitored value goes
above certain base line.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Now you
know if something is going wrong and you can take snapshots (manually) while it’s
happening.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;
&lt;a href="http://1.bp.blogspot.com/-hj_oeLxHUD4/TrFxv6diYGI/AAAAAAAAAxw/OXLNE_Y3lwk/s1600/Screen-Shot-2011-10-12-at-12.54.11-PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="200" src="http://1.bp.blogspot.com/-hj_oeLxHUD4/TrFxv6diYGI/AAAAAAAAAxw/OXLNE_Y3lwk/s320/Screen-Shot-2011-10-12-at-12.54.11-PM.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Pro’s &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;Easy
to install&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;Easy
to use&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;Easy
to understand&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;Overhead &amp;lt; 2%&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Con’s&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;It’s
limited: Max data retention of 2 hours&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;Only
30 transactions&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US" style="font-family: Arial, Helvetica, sans-serif;"&gt;It’s
not perfect. Use it as your first line, but also consider using other tools
like &lt;a href="http://visualvm.java.net/" target="_blank"&gt;JVisualVM &lt;/a&gt;&amp;amp; &lt;a href="http://www.eclipse.org/mat/" target="_blank"&gt;MAT&lt;/a&gt;.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Upgrade? Why?&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpFirst" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="EN-US"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Less
work! Snapshots are taken atomically. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoListParagraphCxSpLast" style="mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;
&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span lang="EN-US"&gt;-&lt;span style="font: normal normal normal 7pt/normal 'Times New Roman';"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;Jumping
from tier to tier. Business transaction can run over multiple tiers, now you
can follow them and find out, which tier is causing the problem.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;…&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;span class="Apple-style-span" style="font-size: large;"&gt;Advice&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;Try it! It
will help you find what you are looking about 80 % of the time. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;When your
application matures it’s about 90%. (Personal opinion)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;Watch the movie!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;Install:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;a href="http://www.youtube.com/watch?v=xSenA-zEKR0"&gt;http://www.youtube.com/watch?v=xSenA-zEKR0&lt;/a&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif; font-size: large;"&gt;New version:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;a href="http://www.youtube.com/watch?v=uZkHkVlOohM&amp;amp;feature=player_embedded" target="_blank"&gt;http://www.youtube.com/watch?v=uZkHkVlOohM&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class="MsoNormal"&gt;
&lt;span lang="EN-US"&gt;&lt;span class="Apple-style-span" style="font-family: Arial, Helvetica, sans-serif;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-5297762828708413550?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/z_MR-7LjU_1_sLVmrWcXl8hHaPs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_MR-7LjU_1_sLVmrWcXl8hHaPs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/z_MR-7LjU_1_sLVmrWcXl8hHaPs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/z_MR-7LjU_1_sLVmrWcXl8hHaPs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/NbVzRKMSttw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/5297762828708413550/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/11/performanceshould-be-free-version-2.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/5297762828708413550?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/5297762828708413550?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/NbVzRKMSttw/performanceshould-be-free-version-2.html" title="Performance Should Be Free" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-T_lSND0yiLc/TrFwbCkN2hI/AAAAAAAAAxg/hBS_XkwInA8/s72-c/freedownload_header_img.png" height="72" width="72" /><thr:total>0</thr:total><georss:featurename>Gent, België</georss:featurename><georss:point>51.05665 3.72</georss:point><georss:box>50.976806499999995 3.5620715 51.1364935 3.8779285000000003</georss:box><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/11/performanceshould-be-free-version-2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ck4BRH4yfCp7ImA9WhdTFkU.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-3454024064135043745</id><published>2011-07-14T14:27:00.000-07:00</published><updated>2011-07-14T15:02:35.094-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-14T15:02:35.094-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="business transactions" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="appdynamics" /><category scheme="http://www.blogger.com/atom/ns#" term="root cause" /><category scheme="http://www.blogger.com/atom/ns#" term="apm" /><title>Know where to look for bottlenecks! Business Transaction!</title><content type="html">&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Time is of the essence when facing performance problems. We need to find out what's going on and who is effected by it.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;If you have a distributed environment with clusters, multiple tiers, loadbalacing... Things can become a bit tricky in finding the root cause.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;You will need to monitor everything that could be a potential bottleneck:&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Memory&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;CPU&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;IO&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Network&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Application(s)!&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;img border="0" src="http://4.bp.blogspot.com/-fmvvbTWUcGY/Thy9BEGMWuI/AAAAAAAAAtE/QQ3bq1Ffa9Q/s1600/businessTransactionAppdynamics.png" style="margin-left: auto; margin-right: auto;" /&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="font-size: 13px; text-align: center;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Copyright AppDynamics&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;A business transaction is a way that helps you visualize one or more 'user interactions' in a certain theme.&lt;/div&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&amp;nbsp;Example of business transactions:&lt;/div&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Show detail&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Checkout&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Find product&lt;/div&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&amp;nbsp;These 'user interactions' can run over one or multiple application transaction(s) which on their turn&amp;nbsp;can be spread over one or our multiple nodes/tiers. The goal is to simplify and&amp;nbsp;clarify. By doing this we can more&amp;nbsp;easily&amp;nbsp;estimate the impact of the problem and triangulate the problem faster. We are no longer looking at&amp;nbsp;&lt;b&gt;individual&lt;/b&gt;&amp;nbsp;graphs of multiple machines but one business transaction that can run&amp;nbsp;&lt;b&gt;across&amp;nbsp;multiple machines&lt;/b&gt;!&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;This small list of business transactions looks simple enough:&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-ivOai4Zvyu0/Thy9qh4JQBI/AAAAAAAAAtI/i04A-dLLlCY/s1600/simple_list_business_transactions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="55" src="http://2.bp.blogspot.com/-ivOai4Zvyu0/Thy9qh4JQBI/AAAAAAAAAtI/i04A-dLLlCY/s400/simple_list_business_transactions.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;But when we have a closer look on what's happening, we can see how skillfully it hides it complexity.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-PK9XJYmmEc0/Thy-DrCVw_I/AAAAAAAAAtM/WPnTvTv53Zo/s1600/Insight_businessTransaction2.png.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="332" src="http://3.bp.blogspot.com/-PK9XJYmmEc0/Thy-DrCVw_I/AAAAAAAAAtM/WPnTvTv53Zo/s640/Insight_businessTransaction2.png.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;The trick in defining business transactions is to make it 'user centric' =&amp;gt; simple.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;If your Dev, Ops, Business and/or a normal person. You can understand the importance if your checkout transaction is going slow, it's costing money!&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;b&gt;So how do we create business transactions?&lt;/b&gt;&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;We are again using&amp;nbsp;&lt;a href="http://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt;&amp;nbsp;to help us show how it's done.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;b&gt;Dynamic discovery&lt;/b&gt;&amp;nbsp;find our transactions automatically in most web applications. For Non-web-application, you can simply choose to listen to a class, interface or method.&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0.08in;"&gt;We can add one our more simple rules to help us find our transactions. You can also simply choose to listen to a class, interface or method. (not visible on the screenshot)&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-6u5buzl1wAo/Thy-gVvkHYI/AAAAAAAAAtY/HP3yAfa92xU/s1600/appdynamics_rule_business_transactions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="505" src="http://4.bp.blogspot.com/-6u5buzl1wAo/Thy-gVvkHYI/AAAAAAAAAtY/HP3yAfa92xU/s640/appdynamics_rule_business_transactions.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-t_X1A8Jgp-Q/Thy-RlAK1_I/AAAAAAAAAtQ/VxfbhoTjrt4/s1600/appdynamics_configure_businesstransactions.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;br /&gt;
&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;In case we want to know more, for example we want to check our&amp;nbsp;&lt;i&gt;special&lt;/i&gt;&amp;nbsp;sales offers or even more important&amp;nbsp;&lt;span style="color: blue;"&gt;COLOR&lt;/span&gt;. We can do this as well!&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-AOouDUKIfWY/Thy-XxTXM0I/AAAAAAAAAtU/RiFcxJKbjv4/s1600/appdynamics_split_up_business_transactions.png.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;Step 1&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-mkJMc6Wy4x8/Thy_jRDq-4I/AAAAAAAAAtc/3yoJiT9y6uc/s1600/addColorBusinessTransaction.png.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://4.bp.blogspot.com/-mkJMc6Wy4x8/Thy_jRDq-4I/AAAAAAAAAtc/3yoJiT9y6uc/s640/addColorBusinessTransaction.png.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;Step 2&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-cxI6aIv5vdY/Thy_n_oVAPI/AAAAAAAAAtg/J4YqloFlhCI/s1600/appdynamics_addColorBusinessTransaction2.png.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="456" src="http://3.bp.blogspot.com/-cxI6aIv5vdY/Thy_n_oVAPI/AAAAAAAAAtg/J4YqloFlhCI/s640/appdynamics_addColorBusinessTransaction2.png.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;Or we want more details,&amp;nbsp;&lt;a href="http://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt;&amp;nbsp;can help us even more. We can even use the&amp;nbsp;&lt;a href="http://en.wikipedia.org/wiki/Payload_%28software%29#Networking"&gt;payload&lt;/a&gt;. (Think REST/web-services!)&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; margin-bottom: 0.08in; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-imABtlqfS1k/ThzAl_omOaI/AAAAAAAAAtk/Kp-Ul5umdZg/s1600/appdynamics_split_up_using_payload.png.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="458" src="http://2.bp.blogspot.com/-imABtlqfS1k/ThzAl_omOaI/AAAAAAAAAtk/Kp-Ul5umdZg/s640/appdynamics_split_up_using_payload.png.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;div style="margin-bottom: 0.08in;"&gt;That's all for now. Next time, we will start looking in how to find/resolve blind spots.&amp;nbsp;&lt;a href="http://www.appdynamics.com/blog/2011/03/14/the-power-of-the-business-transaction/"&gt;If you like to know more about business transaction click on the link.&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-3454024064135043745?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yPrPIYsyDNW-duyNYwEsjrm_BGA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yPrPIYsyDNW-duyNYwEsjrm_BGA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yPrPIYsyDNW-duyNYwEsjrm_BGA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yPrPIYsyDNW-duyNYwEsjrm_BGA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/VrlYK0HaZ2k" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/3454024064135043745/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/07/know-where-to-look-for-bottlenecks.html#comment-form" title="2 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/3454024064135043745?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/3454024064135043745?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/VrlYK0HaZ2k/know-where-to-look-for-bottlenecks.html" title="Know where to look for bottlenecks! Business Transaction!" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-fmvvbTWUcGY/Thy9BEGMWuI/AAAAAAAAAtE/QQ3bq1Ffa9Q/s72-c/businessTransactionAppdynamics.png" height="72" width="72" /><thr:total>2</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/07/know-where-to-look-for-bottlenecks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkcNSHs9eip7ImA9WhdTEEo.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-892474503524364049</id><published>2011-07-07T13:34:00.000-07:00</published><updated>2011-07-07T14:28:19.562-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-07T14:28:19.562-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="performance" /><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="drill down" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="appdynamics" /><category scheme="http://www.blogger.com/atom/ns#" term="root cause" /><category scheme="http://www.blogger.com/atom/ns#" term="apm" /><title>Finding the root cause! Fast! With AppDynamics!</title><content type="html">&lt;style type="text/css"&gt;
 &lt;!--
  @page { margin: 0.79in }
  P { margin-bottom: 0.08in }
 --&gt;
 
&lt;/style&gt;  &lt;br /&gt;
&lt;div style="margin-bottom: 0in;"&gt;The thing I love most about Java are the awesome tools! The plugins for IDE's, the profilers (ex. &lt;a href="http://www.yourkit.com/"&gt;YourKit&lt;/a&gt;) , the memory analyzers (ex. &lt;a href="http://www.eclipse.org/mat/"&gt;eclipse MAT&lt;/a&gt;), the javaagents (ex. &lt;a href="http://www.zeroturnaround.com/jrebel/"&gt;JRebel&lt;/a&gt;)... But my absolute favorite of all&amp;nbsp; are the APM-tools(Application Performance Management). This really helps me in my day to day life.  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;In this series of tutorials we will cover a lot of functionality what a great APM-tool can do for you. I will be using my favorite APM  on the market &lt;a href="http://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt;.  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Why? It looks awesome and it does the job well. I can use in &lt;b&gt;production without me becoming the bottleneck (&amp;lt; 2% overhead)&lt;/b&gt;!&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-large;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-large;"&gt;Tutorial number one:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: x-large;"&gt; Finding the root cause! Fast!  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Step 1: The application dashboard!&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-ae4YcPaY0eg/ThYRtWHkmVI/AAAAAAAAAsk/C-x78mYLXRA/s1600/appdynamics_root_cause1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="280" src="http://3.bp.blogspot.com/-ae4YcPaY0eg/ThYRtWHkmVI/AAAAAAAAAsk/C-x78mYLXRA/s640/appdynamics_root_cause1.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;1: Here we are on our dashboard. We see our different tiers and nodes of our application.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;2: There seems to be a problem with our response times. Better look into it!&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;3: Here we see the snapshots taken of the incident.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Step 2: A closer look&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;We have a lot snapshots of slow transactions. No stalls yet! Click on the camera...SMILE.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-8u2GL3Yw_RQ/ThYSJ82h7aI/AAAAAAAAAso/g1xWX29mm-g/s1600/appdynamics_snapshots_close+up.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="189" src="http://2.bp.blogspot.com/-8u2GL3Yw_RQ/ThYSJ82h7aI/AAAAAAAAAso/g1xWX29mm-g/s400/appdynamics_snapshots_close+up.jpg" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Step 3: Snapshot list&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;We see a list of all snapshots taken. We select a snapshot too see what's happening.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-RBe20B0e3T0/ThYSSfyzZHI/AAAAAAAAAss/QVVdaYsVQow/s1600/appdynamics_snapshots_list.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="216" src="http://3.bp.blogspot.com/-RBe20B0e3T0/ThYSSfyzZHI/AAAAAAAAAss/QVVdaYsVQow/s640/appdynamics_snapshots_list.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Step 4: Insight in the transaction&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Node 2 tier 1 seems to be having some difficulty. We better drill down to find out what's going on.&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-CxEyTt48Sps/ThYSb4rZO9I/AAAAAAAAAsw/JL1FBD2Mk8Q/s1600/appdynamics_insight_transaction.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="340" src="http://3.bp.blogspot.com/-CxEyTt48Sps/ThYSb4rZO9I/AAAAAAAAAsw/JL1FBD2Mk8Q/s640/appdynamics_insight_transaction.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Step 5: Drill Down&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-lxdM-PysKnM/ThYSk-2_NwI/AAAAAAAAAs0/7OH3o0Mkj7I/s1600/appdynamics_bottleneck.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="392" src="http://1.bp.blogspot.com/-lxdM-PysKnM/ThYSk-2_NwI/AAAAAAAAAs0/7OH3o0Mkj7I/s640/appdynamics_bottleneck.jpg" width="640" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Root cause found&lt;/span&gt;: A Thread.sleep. It was only a test. Glad no one ever uses Thread.sleep in &lt;b&gt;production&lt;/b&gt;... &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;span style="font-size: large;"&gt;Things you should know:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;a href="http://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt; takes snapshots automatically when transactions are running slow.  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;So you don't have to worry about watching your application all of the time.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;How does &lt;a href="http://www.appdynamics.com/"&gt;AppDynamics&lt;/a&gt; know my transaction is running slow?&lt;/b&gt;&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;i&gt;Self learning baselines&lt;/i&gt;. Meaning you don't have to configure a thing to detect abnormal deviations.  Also it becomes more accurate over time!&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;P.S.&amp;nbsp; In case you do not agree with the defaults, you can always configure them manually.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;b&gt;*&lt;a href="http://www.appdynamics.com/products-free-download.php"&gt;Lite version&lt;/a&gt;&lt;/b&gt;(FREE): You will have to start a diagnostics session manually to take snapshots. (right click on the transaction =&amp;gt; start diagnostic session).&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;That's all for today.&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Next tutorial we'll talk about Business Transactions.  &lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;What are they and how can they help us?&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;How to define them or NOT! (auto-discovery)&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;Please look forward to my next blog and please give feedback!&lt;/div&gt;&lt;div style="margin-bottom: 0in;"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-892474503524364049?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/JtymtmPVCjbOwzTGHHmF7axMX2A/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtymtmPVCjbOwzTGHHmF7axMX2A/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/JtymtmPVCjbOwzTGHHmF7axMX2A/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/JtymtmPVCjbOwzTGHHmF7axMX2A/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/Q1NNFSUp3IY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/892474503524364049/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/07/finding-root-cause-fast.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/892474503524364049?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/892474503524364049?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/Q1NNFSUp3IY/finding-root-cause-fast.html" title="Finding the root cause! Fast! With AppDynamics!" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-ae4YcPaY0eg/ThYRtWHkmVI/AAAAAAAAAsk/C-x78mYLXRA/s72-c/appdynamics_root_cause1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/07/finding-root-cause-fast.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMBR3ozfyp7ImA9WhZQEk4.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-7577254704662694126</id><published>2011-04-14T14:06:00.001-07:00</published><updated>2011-04-19T10:17:36.487-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-04-19T10:17:36.487-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="java" /><category scheme="http://www.blogger.com/atom/ns#" term="memory leak" /><category scheme="http://www.blogger.com/atom/ns#" term="heap dump" /><category scheme="http://www.blogger.com/atom/ns#" term="Eclipse" /><category scheme="http://www.blogger.com/atom/ns#" term="tutorial" /><category scheme="http://www.blogger.com/atom/ns#" term="memory" /><category scheme="http://www.blogger.com/atom/ns#" term="MAD" /><title>MAD about MAT! The 'simple' tutorial!</title><content type="html">&lt;div style="background-color: transparent;"&gt;&lt;h1 id="internal-source-marker_0.7099522596690804"&gt;&lt;span class="Apple-style-span" style="font-size: 24px; white-space: pre-wrap;"&gt;What’s MAT (Eclipse Memory Analyzer)&lt;/span&gt;&lt;/h1&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;It help reads your java heap dumps and helps you connects the dots.&amp;nbsp;Mat is an a great a heap dump analyzer, developed by Eclipse/IBM &amp;amp; SAP.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;It's supported for the SUN jvm and the IBM jvm.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qzadZBUcbbw/Tayq9rvHhzI/AAAAAAAAAmA/4mORFFzjBzg/s1600/Vastleggen+in+volledig+scherm+18042011+220820.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="248" src="http://2.bp.blogspot.com/-qzadZBUcbbw/Tayq9rvHhzI/AAAAAAAAAmA/4mORFFzjBzg/s320/Vastleggen+in+volledig+scherm+18042011+220820.bmp.jpg" width="320" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;MAT ( Eclipse Memory Analyzer)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="background-color: transparent; color: black; font-size: 18pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Is it easy?&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Well to be honest, No! You can write a book about the jvm and how to fix memory problems. I hoping after you finished reading this you can find the big problems easy. The harder problems you probably will find after reading some more tutorials and getting some experience under your belt.&lt;/span&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="background-color: transparent; color: black; font-size: 18pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Download&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;MAT is free! So Please download and try it out yourself.&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;a href="http://www.eclipse.org/mat/downloads.php"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.eclipse.org/mat/downloads.php&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;TIP: Download it Now while you read. What do you have to lose a few MB?&lt;/span&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="background-color: transparent; color: black; font-size: 18pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;How to use?&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;I have searched the Internet, finding many different tutorials. Instead of writing my own, I have found the best way of working was thanks to the advice of &lt;/span&gt;&lt;a href="http://www.blogger.com/profile/07049940821725217460"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;Vatel&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; &lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Hello Markus, ⇐ owner of an excellent performance blog.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;I would like to share my own experience of using MAT.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;MAT is really a great tool, but your should known well how to use it! Unfortunately, by default MAT shows some useless windows, so you may be disappointed.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;OK, below is my "How to", it would be great to compose a tutorial based on it and include it into MAT docs. I included screenshot of my example "my.leaks" application&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;===============================================&lt;/span&gt;&lt;/span&gt;&lt;h3&gt;&lt;span style="background-color: transparent; color: black; font-size: 14pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;How to use Eclipse MAT to analyze memory dumps.&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;===============================================&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Initial steps:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- if working with large heap dumps (&amp;gt; 1 Gb), it is r&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;b&gt;ecommended to increase Xmx&lt;/b&gt;&lt;/span&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt; value in eclipse.ini (ex. -Xmx2400m)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- open your dump (File -&amp;gt; Open heap dump), wait until parsing is finished&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;- for a fast preview, make a summary histogram (button "Create a histogram from an arbitrary set of object" on the toolbar),&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;sort by retaind heap, look at object types which retain most of memory (usually, String/char[] and byte[])&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h3&gt;&lt;span style="background-color: transparent; color: black; font-size: 14pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1. The first way - using dominator tree grouped by packets/classes&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1.1 &amp;nbsp;The DOMINATOR tree &lt;span class="Apple-style-span" style="font-weight: normal;"&gt;(author's remark: I love this word!)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Press button "Open query browser", in the drop-down menu select "Java Basics -&amp;gt; Open in dominator tree",&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;type a filter for your classes in "objects" field, ex. "com.yourcompany.yourproject.*",&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;in the "groupby" field, select "by package", look at the results (retained heap), expand your packets and subpackets,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;see how much memory is retained by each packet/subpacket.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;This way you may understand which module(s) of your system consume most of memory.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In my example this "my.leaks.*"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-qzadZBUcbbw/Tayq9rvHhzI/AAAAAAAAAmA/4mORFFzjBzg/s1600/Vastleggen+in+volledig+scherm+18042011+220820.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="496" src="http://2.bp.blogspot.com/-qzadZBUcbbw/Tayq9rvHhzI/AAAAAAAAAmA/4mORFFzjBzg/s640/Vastleggen+in+volledig+scherm+18042011+220820.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Screen MAT ( Eclipse Memory Analyzer)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-gr0oXG4r4kc/Tayq-OGNJdI/AAAAAAAAAmE/WFnnqZkspFc/s1600/Vastleggen+in+volledig+scherm+18042011+221158.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="452" src="http://3.bp.blogspot.com/-gr0oXG4r4kc/Tayq-OGNJdI/AAAAAAAAAmE/WFnnqZkspFc/s640/Vastleggen+in+volledig+scherm+18042011+221158.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Selecting the dominator tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-lxVxg3W4Gao/TayrClTtsUI/AAAAAAAAAmo/JUu2ewklq5U/s1600/Vastleggen+in+volledig+scherm+18042011+224435.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="516" src="http://3.bp.blogspot.com/-lxVxg3W4Gao/TayrClTtsUI/AAAAAAAAAmo/JUu2ewklq5U/s640/Vastleggen+in+volledig+scherm+18042011+224435.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Java Basics / Open In Dominator Tree&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div&gt;&lt;/div&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1.2 Show retained set&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Select a packet (or a class) you want to investigate (which retains much memory),&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;in the drop-down menu select "Show retained set",&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;look at object types which consume most of memory (in the context of the selected package),&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;you should sort the results by retained heap.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;So, you see which types of objects are consumed by some of your modules/subsystems.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-0Pig3S5MAaQ/Tayq_zOwIsI/AAAAAAAAAmQ/_oeBnaZREUo/s1600/Vastleggen+in+volledig+scherm+18042011+224119.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="233" src="http://1.bp.blogspot.com/-0Pig3S5MAaQ/Tayq_zOwIsI/AAAAAAAAAmQ/_oeBnaZREUo/s640/Vastleggen+in+volledig+scherm+18042011+224119.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Dominator tree by package&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-X3eXyMJXXP8/TayrARcl8RI/AAAAAAAAAmU/rt7STwBnr1k/s1600/Vastleggen+in+volledig+scherm+18042011+224126.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="436" src="http://3.bp.blogspot.com/-X3eXyMJXXP8/TayrARcl8RI/AAAAAAAAAmU/rt7STwBnr1k/s640/Vastleggen+in+volledig+scherm+18042011+224126.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Show retained set&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1.3 Show largest objects&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Click on some object type (usually, you look at char[] and byte[]),&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;in the context menu select "List objects -&amp;gt; with incoming references", sort the results by retained heap.&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;This way, you will see largest objects of the selected type. You may see their contents, copy them into clipboard&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;or a file ("Copy" in the context menu)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;To see more objects, click on the "Total" line (in the bottom) and select "Next" in the context menu.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;img border="0" height="411" src="http://1.bp.blogspot.com/-aAv4c2ZO3HA/TaywDqHPE_I/AAAAAAAAAoA/198Eztji450/s640/Vastleggen+in+volledig+scherm+18042011+234101.jpg" style="margin-left: auto; margin-right: auto;" width="640" /&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;MAT - List Object with incoming refrence&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-aAv4c2ZO3HA/TaywDqHPE_I/AAAAAAAAAoA/198Eztji450/s1600/Vastleggen+in+volledig+scherm+18042011+234101.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;br /&gt;
&lt;div style="background-color: transparent;"&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1.4 Analyse&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Select an object instance from the result, look at its contents, and also expand incoming references,&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;analyze why this object is referenced and why this value is here (this depends on your business logic).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;It makes sense to look at more objects from the result and analyze them.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://4.bp.blogspot.com/-FESi4kOtmaA/TayrMeSgp4I/AAAAAAAAAns/9uYr_PtZYJA/s1600/Vastleggen+in+volledig+scherm+18042011+231513.bmp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="272" src="http://4.bp.blogspot.com/-FESi4kOtmaA/TayrMeSgp4I/AAAAAAAAAns/9uYr_PtZYJA/s640/Vastleggen+in+volledig+scherm+18042011+231513.bmp.jpg" width="640" /&gt;&lt;/a&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;1.5 Repeat&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Repeat steps for different object types and also different packets and/or classes&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;(you are interested in objects which retain most of heap).&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2. Another way (Using the histogram)&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2.1 Histogram&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;On the summary histogram (see Initial Steps above) select a type (class) which retains much memory (ususally char[]/String, byte[])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-i_qJhXuaks0/TayrDWx5x7I/AAAAAAAAAoE/AVODmgnZ78E/s1600/Vastleggen+in+volledig+scherm+18042011+224458.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="182" src="http://2.bp.blogspot.com/-i_qJhXuaks0/TayrDWx5x7I/AAAAAAAAAoE/AVODmgnZ78E/s640/Vastleggen+in+volledig+scherm+18042011+224458.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Menu MAT - Select Histogram&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2.2 incoming references &lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;In the context menu select "Show object by class -&amp;gt; by incoming references"&lt;/span&gt;&lt;/span&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-_WVb90IHMFk/TayrEYtOMjI/AAAAAAAAAm0/HkoiGA2aOCI/s1600/Vastleggen+in+volledig+scherm+18042011+224700.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="640" src="http://3.bp.blogspot.com/-_WVb90IHMFk/TayrEYtOMjI/AAAAAAAAAm0/HkoiGA2aOCI/s640/Vastleggen+in+volledig+scherm+18042011+224700.bmp.jpg" width="616" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Histogram MAT - Selecting incoming refrences&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2.3 Expand the resulting tree&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;look - which class references to it, then look which class references to that class, etc.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-lOsf7qpC640/TayrGRfOHiI/AAAAAAAAAnA/iy_NcOtPpRA/s1600/Vastleggen+in+volledig+scherm+18042011+224757.bmp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="228" src="http://4.bp.blogspot.com/-lOsf7qpC640/TayrGRfOHiI/AAAAAAAAAnA/iy_NcOtPpRA/s640/Vastleggen+in+volledig+scherm+18042011+224757.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;a href="http://4.bp.blogspot.com/-FESi4kOtmaA/TayrMeSgp4I/AAAAAAAAAns/9uYr_PtZYJA/s1600/Vastleggen+in+volledig+scherm+18042011+231513.bmp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="272" src="http://4.bp.blogspot.com/-FESi4kOtmaA/TayrMeSgp4I/AAAAAAAAAns/9uYr_PtZYJA/s640/Vastleggen+in+volledig+scherm+18042011+231513.bmp.jpg" style="cursor: move;" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-h4RG0Q2knJA/TayrL15NCbI/AAAAAAAAAno/9WbSeMRw-7E/s1600/Vastleggen+in+volledig+scherm+18042011+231412.bmp.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;img border="0" height="456" src="http://3.bp.blogspot.com/-h4RG0Q2knJA/TayrL15NCbI/AAAAAAAAAno/9WbSeMRw-7E/s640/Vastleggen+in+volledig+scherm+18042011+231412.bmp.jpg" width="640" /&gt;&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;2.4 Retained Set&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;At each step you may look at the retained set of any class ("Show retained set" in the context menu)&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;or at the concrete object instances ("List objects -&amp;gt; with incoming references" in the context menu). &lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Resource: &lt;/span&gt;&lt;a href="http://kohlerm.blogspot.com/2009/07/eclipse-memory-analyzer-10-useful.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://kohlerm.blogspot.com/2009/07/eclipse-memory-analyzer-10-useful.html&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;b&gt;The end&lt;/b&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;b&gt;My personal favorite/alternative&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Instead of selecting List Objects, choose Select Show Objects By Class -&amp;gt;&amp;nbsp;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt; by incoming references"&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;And expand:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style="text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-BmBn2HVwlJ0/TayzifkrtVI/AAAAAAAAAoY/-LSbeKB3duU/s1600/Vastleggen+in+volledig+scherm+18042011+235353.bmp.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-BmBn2HVwlJ0/TayzifkrtVI/AAAAAAAAAoY/-LSbeKB3duU/s640/Vastleggen+in+volledig+scherm+18042011+235353.bmp.jpg" width="640" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class="tr-caption" style="text-align: center;"&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;Show Objects By Class -&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: small;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt; by incoming references&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: transparent;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline;"&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-size: 15px; white-space: pre-wrap;"&gt;The answer: Here our service CreateLeaks is creating a leak(what's in a name). &lt;/span&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="background-color: transparent; color: black; font-size: 18pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;Extra information&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Wait, wait, what did he say?&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;You can some great reference information at:&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h3&gt;&lt;span style="background-color: transparent; color: black; font-size: 14pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;short version:&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;http://yourkit.com/docs/95/help/sizes.jsp&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h4&gt;&lt;span style="background-color: transparent; color: black; font-size: 12pt; font-style: normal; font-weight: bold; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;some what longer version:&lt;/span&gt;&lt;/span&gt;&lt;/h4&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;&lt;a href="http://kohlerm.blogspot.com/2009/02/how-to-really-measure-memory-usage-of.html"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://kohlerm.blogspot.com/2009/02/how-to-really-measure-memory-usage-of.html&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;Some good slides: last view slide give you some usefull advice. Like how to dump in your jvm(IBM and SUN)&lt;/span&gt;&lt;br /&gt;
&lt;a href="http://www.slideshare.net/AJohnson1/extending-eclipse-memory-analyzer"&gt;&lt;span style="background-color: transparent; color: #000099; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: underline; vertical-align: baseline; white-space: pre-wrap;"&gt;http://www.slideshare.net/AJohnson1/extending-eclipse-memory-analyzer&lt;/span&gt;&lt;/a&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;h2&gt;&lt;span style="background-color: transparent; vertical-align: baseline;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-family: inherit; font-size: large;"&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;So why am I MAD about MAT/&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="white-space: pre-wrap;"&gt;Conclusion&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;&lt;span style="background-color: transparent; color: black; font-size: 11pt; font-style: normal; font-weight: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"&gt;&lt;span class="Apple-style-span" style="font-family: inherit;"&gt;MAT is an excellent, and you will find lots of great tutorials. Who will explain to you a lot. I mean really a lot! (Time consuming) Personal advice follow the wise words of Vatel and try and not to loose too much time. If you want to know more... just read http://java.dzone.com/news/how-fix-memory-leaks-java&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-7577254704662694126?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/5TWFvVizI0Wy1l44lnWla6RJ5kM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5TWFvVizI0Wy1l44lnWla6RJ5kM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/5TWFvVizI0Wy1l44lnWla6RJ5kM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/5TWFvVizI0Wy1l44lnWla6RJ5kM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/NRwXxKbZh04" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/7577254704662694126/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/04/mad-about-mat-simple-tutorial.html#comment-form" title="1 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/7577254704662694126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/7577254704662694126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/NRwXxKbZh04/mad-about-mat-simple-tutorial.html" title="MAD about MAT! The 'simple' tutorial!" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/-qzadZBUcbbw/Tayq9rvHhzI/AAAAAAAAAmA/4mORFFzjBzg/s72-c/Vastleggen+in+volledig+scherm+18042011+220820.bmp.jpg" height="72" width="72" /><thr:total>1</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/04/mad-about-mat-simple-tutorial.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkEBR3w7cSp7ImA9WhZSFk0.&quot;"><id>tag:blogger.com,1999:blog-1883849154194145526.post-5682021115096022457</id><published>2011-03-31T13:23:00.000-07:00</published><updated>2011-03-31T13:50:56.209-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-31T13:50:56.209-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="packages" /><category scheme="http://www.blogger.com/atom/ns#" term="updater" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="windows" /><category scheme="http://www.blogger.com/atom/ns#" term="ubuntu" /><category scheme="http://www.blogger.com/atom/ns#" term="Automatic installer" /><title>Ninite the automatic installer for all!</title><content type="html">&lt;b&gt;Ninite&lt;/b&gt; is an automatic &lt;b&gt;FREE&lt;/b&gt; installer/updater for windows and linux.(yes even linux)&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Where to use?&lt;/h2&gt;&lt;br /&gt;
&lt;h3&gt;As an installer:&lt;/h3&gt;&lt;br /&gt;
You just reformatted your pc, and you have a fresh windows. Instead of traveling the internet in search of your software, you can download all of your software latest version and everything will be installed automatically! &lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;As an updater:&lt;/h3&gt;&lt;br /&gt;
You are using an machine you haven't used for a while. The software is out of date. You can select the software you want, and the newest version will be installed for you.&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;How does it work?&lt;/h2&gt;&lt;br /&gt;
&lt;b&gt;Installing&lt;/b&gt;? Select the software you're interested, then download the auto installer and the rest is done by ninite.&lt;br /&gt;
&lt;b&gt;Update&lt;/b&gt;? Select the software you want up to date, then download the auto installer and the rest is done by ninite.&lt;br /&gt;
Simple enough?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;Advantage:&lt;/h2&gt;&lt;br /&gt;
&lt;b&gt;Windows&lt;/b&gt;? Time saved by searching on various websites.&lt;br /&gt;
&lt;b&gt;linux&lt;/b&gt;? codecs, google-chrome, sun jdk. &lt;== really annoyed this has been removed default from ubuntu.
&lt;br/&gt;&lt;br /&gt;
&lt;b&gt;url&lt;/b&gt;: &lt;a href="http://ninite.com"&gt;http://ninite.com&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Super screenshot&lt;/b&gt;: Check out all the software packages.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-WgJJ9wn_Bw0/TZTgBOCohWI/AAAAAAAAAjs/Cqeu42vcx7o/s1600/ninitepart1.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="400" width="350" src="http://3.bp.blogspot.com/-WgJJ9wn_Bw0/TZTgBOCohWI/AAAAAAAAAjs/Cqeu42vcx7o/s400/ninitepart1.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-TQE7XtVCJw8/TZTgBQ60AzI/AAAAAAAAAj0/-T5GcvYFcXg/s1600/ninitepart2.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="400" width="362" src="http://4.bp.blogspot.com/-TQE7XtVCJw8/TZTgBQ60AzI/AAAAAAAAAj0/-T5GcvYFcXg/s400/ninitepart2.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-CVpNeKktegQ/TZTgBsJ9-fI/AAAAAAAAAj8/YhckPMPcWOY/s1600/ninitepart3.jpg" imageanchor="1" style=""&gt;&lt;img border="0" height="450" width="362" src="http://2.bp.blogspot.com/-CVpNeKktegQ/TZTgBsJ9-fI/AAAAAAAAAj8/YhckPMPcWOY/s400/ninitepart3.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;
Try it now? It's Free!&lt;br /&gt;
&lt;br /&gt;
&lt;iframe src="http://ninite.com/embed?only=firefox-opera-safari-chrome" style="border: none; width: 650px; height: 240px;"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1883849154194145526-5682021115096022457?l=omgimlovinit.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/qnAeUUxF2ewkCEdlMelIk8NrH64/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qnAeUUxF2ewkCEdlMelIk8NrH64/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/qnAeUUxF2ewkCEdlMelIk8NrH64/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/qnAeUUxF2ewkCEdlMelIk8NrH64/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/OmgImLovinIt/~4/zuA0MlLWvzo" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://omgimlovinit.blogspot.com/feeds/5682021115096022457/comments/default" title="Reacties plaatsen" /><link rel="replies" type="text/html" href="http://omgimlovinit.blogspot.com/2011/03/ninite-automatic-installer-for-all.html#comment-form" title="0 reacties" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/5682021115096022457?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/1883849154194145526/posts/default/5682021115096022457?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/OmgImLovinIt/~3/zuA0MlLWvzo/ninite-automatic-installer-for-all.html" title="Ninite the automatic installer for all!" /><author><name>Danny Bollaert</name><uri>http://www.blogger.com/profile/01828231938732617544</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="24" src="http://1.bp.blogspot.com/-KPWHvAG-DVQ/Th9kCVgW7dI/AAAAAAAAAvo/kBDdhRQCJVc/s220/P1000001.JPG" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/-WgJJ9wn_Bw0/TZTgBOCohWI/AAAAAAAAAjs/Cqeu42vcx7o/s72-c/ninitepart1.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://omgimlovinit.blogspot.com/2011/03/ninite-automatic-installer-for-all.html</feedburner:origLink></entry></feed>

