<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Should You Use a Code Profiler?</title>
	<atom:link href="http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/</link>
	<description>Follow Steph through his real estate and business journeys</description>
	<lastBuildDate>Wed, 25 Jan 2012 18:09:39 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.4</generator>
	<item>
		<title>By: Steph</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-32924</link>
		<dc:creator>Steph</dc:creator>
		<pubDate>Thu, 03 Jan 2008 20:36:22 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-32924</guid>
		<description>If I remember correctly this is the specific object arrays. So for example if we have an array of Tenant[] than it would be in here.

At least that&#039;s what I think it was. It&#039;s been too long. We generally go through the profiler for each major release so in between I sometimes forget some of the details. We focus mainly on optimizing the main bottlenecks instead of spending a lot of effort on unnecessary optimizations (&lt;i&gt;which is why we really value this tool!&lt;/i&gt;).

You might want to doublecheck with the &lt;a href=&quot;http://www.ej-technologies.com/products/jprofiler/overview.html&quot; rel=&quot;nofollow&quot;&gt;JProfiler&lt;/a&gt; website, I&#039;m sure they can confirm it for you.</description>
		<content:encoded><![CDATA[<p>If I remember correctly this is the specific object arrays. So for example if we have an array of Tenant[] than it would be in here.</p>
<p>At least that&#8217;s what I think it was. It&#8217;s been too long. We generally go through the profiler for each major release so in between I sometimes forget some of the details. We focus mainly on optimizing the main bottlenecks instead of spending a lot of effort on unnecessary optimizations (<i>which is why we really value this tool!</i>).</p>
<p>You might want to doublecheck with the <a href="http://www.ej-technologies.com/products/jprofiler/overview.html" rel="nofollow">JProfiler</a> website, I&#8217;m sure they can confirm it for you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AndR</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-32909</link>
		<dc:creator>AndR</dc:creator>
		<pubDate>Thu, 03 Jan 2008 16:35:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-32909</guid>
		<description>Hi,
If you see the second picture, in the memory views / All object list you can see the first row with this type.
I would like to know what this type means.
Thanks!</description>
		<content:encoded><![CDATA[<p>Hi,<br />
If you see the second picture, in the memory views / All object list you can see the first row with this type.<br />
I would like to know what this type means.<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steph</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-32905</link>
		<dc:creator>Steph</dc:creator>
		<pubDate>Thu, 03 Jan 2008 16:06:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-32905</guid>
		<description>Hi AndR,

I&#039;m not sure I correctly understand what you&#039;re asking... Would you mind rephrasing it differently, and possibly adding an example?</description>
		<content:encoded><![CDATA[<p>Hi AndR,</p>
<p>I&#8217;m not sure I correctly understand what you&#8217;re asking&#8230; Would you mind rephrasing it differently, and possibly adding an example?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AndR</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-32832</link>
		<dc:creator>AndR</dc:creator>
		<pubDate>Wed, 02 Jan 2008 21:28:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-32832</guid>
		<description>Opps, disappeared, ones more:

Does sy have information about what means &lt;class&gt;[] in the primitive type list?</description>
		<content:encoded><![CDATA[<p>Opps, disappeared, ones more:</p>
<p>Does sy have information about what means &lt;class&gt;[] in the primitive type list?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: FollowSteph.com &#187; Just How Important is Your Software Installer?</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-1843</link>
		<dc:creator>FollowSteph.com &#187; Just How Important is Your Software Installer?</dc:creator>
		<pubDate>Sun, 19 Nov 2006 18:54:37 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-1843</guid>
		<description>[...] Since I wrote about JProfiler here on my blog, the people who make this amazing software contacted me to tell me about their installer solution called Install4J. After a few emails with them, I decided to give it a test run, and boy am I glad I did!!! They&#8217;ve created an amazing installer that&#8217;s in the same league as their code profiler! Within 1 hour I had created a brand new and fully functional installer for LandlordMax, including time to read a couple of advance features in the user manual! That&#8217;s amazing! Not only that, but if you consider the human resource costs of learning an installer like NSIS and the cost of Install4J, Install4J wins hands down! [...]</description>
		<content:encoded><![CDATA[<p>[...] Since I wrote about JProfiler here on my blog, the people who make this amazing software contacted me to tell me about their installer solution called Install4J. After a few emails with them, I decided to give it a test run, and boy am I glad I did!!! They&#8217;ve created an amazing installer that&#8217;s in the same league as their code profiler! Within 1 hour I had created a brand new and fully functional installer for LandlordMax, including time to read a couple of advance features in the user manual! That&#8217;s amazing! Not only that, but if you consider the human resource costs of learning an installer like NSIS and the cost of Install4J, Install4J wins hands down! [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: FollowSteph.com &#187; Should We Release Now?</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-1463</link>
		<dc:creator>FollowSteph.com &#187; Should We Release Now?</dc:creator>
		<pubDate>Thu, 09 Nov 2006 02:06:09 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-1463</guid>
		<description>[...] As well, we&#8217;ve done a lot of very significant performance enhancements. Between version 2.12b and version 2.12c we initially did some amazing performance enhancements, as much as an order of magnitude faster for many screens (that&#8217;s 10x faster performance!). Well in this version we did another order of magnitude in performance for most data and list screens! We ran a test database with over 2000 tenants, over 2000 units, over 5000 workorders, over 5000 receipts and invoices, over 50,000 accounting entries, and all the related data. I can assure you that the larger your database, the more significant the performance enhancements! Some screens have improvements where the display is virtually instantenous for larger tables (under 1/2 second)! We&#8217;ve improved the speed of the UI (User Interface) and the database calls (which I&#8217;ll probably write about the later very shortly). All in all, there are some very significant performance enhancements in this upcoming version! [...]</description>
		<content:encoded><![CDATA[<p>[...] As well, we&#8217;ve done a lot of very significant performance enhancements. Between version 2.12b and version 2.12c we initially did some amazing performance enhancements, as much as an order of magnitude faster for many screens (that&#8217;s 10x faster performance!). Well in this version we did another order of magnitude in performance for most data and list screens! We ran a test database with over 2000 tenants, over 2000 units, over 5000 workorders, over 5000 receipts and invoices, over 50,000 accounting entries, and all the related data. I can assure you that the larger your database, the more significant the performance enhancements! Some screens have improvements where the display is virtually instantenous for larger tables (under 1/2 second)! We&#8217;ve improved the speed of the UI (User Interface) and the database calls (which I&#8217;ll probably write about the later very shortly). All in all, there are some very significant performance enhancements in this upcoming version! [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steph</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-750</link>
		<dc:creator>Steph</dc:creator>
		<pubDate>Sat, 07 Oct 2006 02:44:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-750</guid>
		<description>Hi Ryan,

First, thanks! I&#039;m glad you enjoyed the article.

In regards to lazy instantiation, I generally use &quot;eager instantiation&quot; when I want a pre-set default value, or the object is a primitive in Java. Otherwise I try to use lazy instantiation if it doesn&#039;t look too costly in terms of coding effort (which sometimes it is). If it looks like it will be a little more complex to use lazy instantiation then I shortcut and use eager instantiation and just let a code profiler such as JProfiler let me know where I should tweak the code. Why go through all the trouble when 90+% of the time it won&#039;t make any niticeable difference ;)

As for test database, we created some database generating scripts. For example, for tenants we randomly pick a first and last name from a list of the top 1000 firstnames and top 1000 lastnames accross North America. As for addresses, we just took a list of all the streets from one city and randomly append a street number. Mostly what we do is try to grab realistic data and include some randomness into it so that we can have much better testcases! 

Don&#039;t get me wrong, creating all the test database scripts took some time initially, but what&#039;s great about it now is that we can create new fairly random databases that contain real world looking data. And sometimes this brings forth issues that we might not have thought about before!</description>
		<content:encoded><![CDATA[<p>Hi Ryan,</p>
<p>First, thanks! I&#8217;m glad you enjoyed the article.</p>
<p>In regards to lazy instantiation, I generally use &#8220;eager instantiation&#8221; when I want a pre-set default value, or the object is a primitive in Java. Otherwise I try to use lazy instantiation if it doesn&#8217;t look too costly in terms of coding effort (which sometimes it is). If it looks like it will be a little more complex to use lazy instantiation then I shortcut and use eager instantiation and just let a code profiler such as JProfiler let me know where I should tweak the code. Why go through all the trouble when 90+% of the time it won&#8217;t make any niticeable difference <img src='http://www.followsteph.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>As for test database, we created some database generating scripts. For example, for tenants we randomly pick a first and last name from a list of the top 1000 firstnames and top 1000 lastnames accross North America. As for addresses, we just took a list of all the streets from one city and randomly append a street number. Mostly what we do is try to grab realistic data and include some randomness into it so that we can have much better testcases! </p>
<p>Don&#8217;t get me wrong, creating all the test database scripts took some time initially, but what&#8217;s great about it now is that we can create new fairly random databases that contain real world looking data. And sometimes this brings forth issues that we might not have thought about before!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ryan</title>
		<link>http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/comment-page-1/#comment-749</link>
		<dc:creator>Ryan</dc:creator>
		<pubDate>Sat, 07 Oct 2006 01:47:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.followsteph.com/2006/10/06/should-you-use-a-code-profiler/#comment-749</guid>
		<description>Great article!  I have been debating with myself whether class-level objects should be instantiated where they are declared or where they are actually used.  I don&#039;t have tons of experience with programming so I had not considered lazy instantiation.

I am curious how you approach creating test databases, especially larger ones.  Did you create a few properties and then copy them many times or write random stuff into the databases, or did you try to create more realistic datasets? Perhaps you took a combination of approaches?</description>
		<content:encoded><![CDATA[<p>Great article!  I have been debating with myself whether class-level objects should be instantiated where they are declared or where they are actually used.  I don&#8217;t have tons of experience with programming so I had not considered lazy instantiation.</p>
<p>I am curious how you approach creating test databases, especially larger ones.  Did you create a few properties and then copy them many times or write random stuff into the databases, or did you try to create more realistic datasets? Perhaps you took a combination of approaches?</p>
]]></content:encoded>
	</item>
</channel>
</rss>

