<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-22251872</id><updated>2012-01-02T00:06:07.846-05:00</updated><title type='text'>technoChord</title><subtitle type='html'>Random notes that sound about right</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technochord.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22251872/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technochord.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Pankaj</name><uri>http://www.blogger.com/profile/08201344675159561000</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-22251872.post-8038863188450593570</id><published>2010-07-06T16:47:00.000-04:00</published><updated>2010-07-06T16:47:30.905-04:00</updated><title type='text'>Moved</title><content type='html'>I moved this blog to a new &lt;a href="http://nayidisha.com/techblog"&gt;location&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;http://nayidisha.com/techblog&lt;br /&gt;&lt;br /&gt;Thanks for visiting!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22251872-8038863188450593570?l=technochord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technochord.blogspot.com/feeds/8038863188450593570/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22251872&amp;postID=8038863188450593570' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22251872/posts/default/8038863188450593570'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22251872/posts/default/8038863188450593570'/><link rel='alternate' type='text/html' href='http://technochord.blogspot.com/2010/07/moved.html' title='Moved'/><author><name>Pankaj</name><uri>http://www.blogger.com/profile/08201344675159561000</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-22251872.post-113959124919407572</id><published>2006-02-10T10:52:00.000-05:00</published><updated>2006-02-15T09:18:46.343-05:00</updated><title type='text'>J2EE Lite with Spring Framework - Performance</title><content type='html'>When I submitted this post to JDJ for publication, the editor was a bit charry about posting my performance analyisis that followed the article logically. So I thought, this may be a good place to continue that discussion.&lt;br /&gt;&lt;br /&gt;First.. &lt;a href="http://java.sys-con.com/read/180377.htm"&gt;Here&lt;/a&gt; is the article that is available on the JDJ website:&lt;br /&gt;And &lt;a href="http://res.sys-con.com/story/feb06/180377/source.html"&gt;here&lt;/a&gt; is a downloadable webapp that is a standalone Spring application. (Click on the link titled "&lt;span style="font-weight:bold;"&gt;Additional Code II&lt;/span&gt;" for the complete downloadable artifact).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Just as a tickler tho'... the webapp (made2order) shows the following services built using Spring IoC and AOP:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/406/789/1600/made2orderLayers.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/406/789/320/made2orderLayers.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;The webapp is (almost) completetly self contained, in that it will work when deployed to a webapp server (like Tomcat); the only external system properties that need to be supplied are database driver, url, user and password.&lt;br /&gt;The source code for this application is also available in the zip.&lt;br /&gt;&lt;br /&gt;Now that we have seperated infrastructure code from business code, we can look at what is the price paid for interjecting the same services using EJBs, if any.&lt;br /&gt;So I created an Stateless Session EJB that provided transactional semantics via declarative transaction management and CMT. &lt;br /&gt;Similarly I created a Transactional Spring Proxy. I facaded the same business method (that UPDATEd a database table) with both the Spring proxy and the SLSB.&lt;br /&gt;Then I accessed that SLSB via a JNDI lookup and looped the remote instance 300 times.&lt;br /&gt;Compared that with the Spring Proxy and similarly iterated 300 times.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/406/789/1600/EJBPerformance.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/406/789/320/EJBPerformance.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;For 300 iterations of the UPDATE, here are the results:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/406/789/1600/EJBPerformanceNumbers.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/406/789/320/EJBPerformanceNumbers.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The results of the test shows that the proxy out-performs EJB every time although, not by much. Note that the proxy has more interceptors than just Transactions (5 others) whereas the EJB is only providing us Transaction Services (in this use case). Also note that when the SLSB was accessed via a Spring Bean Factory, and the same test was run, there was no significant difference in the results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Performance of Hard-coded Logging statements vs Logging via and Advised Proxy:&lt;/span&gt;&lt;br /&gt;The following test was executed to see the slow down in performance of a proxied logging advice versus hard-coded Log statements.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/406/789/1600/LoggingPerformance.jpg"&gt;&lt;img style="cursor:pointer; cursor:hand;" src="http://photos1.blogger.com/blogger/406/789/320/LoggingPerformance.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;It was seen that for 300 iterations, the advised methods took 6 to 9 milliseconds longer to produce the same output. While the proxy is certainly slower, we have to take into consideration the benefits of a declarative approach compared to relying on developer discipline to code the Log statements.&lt;br /&gt;&lt;br /&gt;Those are just the facts, (ma'am :)) The rest is interpretation.. I'll leave that to more experienced folks to comment on..&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/22251872-113959124919407572?l=technochord.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technochord.blogspot.com/feeds/113959124919407572/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=22251872&amp;postID=113959124919407572' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/22251872/posts/default/113959124919407572'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/22251872/posts/default/113959124919407572'/><link rel='alternate' type='text/html' href='http://technochord.blogspot.com/2006/02/j2ee-lite-with-spring-framework.html' title='J2EE Lite with Spring Framework - Performance'/><author><name>Pankaj</name><uri>http://www.blogger.com/profile/08201344675159561000</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry></feed>
