<?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: Why you should profile</title>
	<atom:link href="http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/feed/" rel="self" type="application/rss+xml" />
	<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/</link>
	<description></description>
	<lastBuildDate>Sat, 12 May 2012 23:42:52 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
	<item>
		<title>By: Keyvan Nayyeri</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-470</link>
		<dc:creator>Keyvan Nayyeri</dc:creator>
		<pubDate>Thu, 16 Jun 2011 22:45:44 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-470</guid>
		<description>For the first point. You&#039;re just wrong. I can&#039;t do anything when you just want to give any reason to support something that you have asserted. You&#039;re just saying they&#039;re not worth worrying and that&#039;s all you have to say. Why? Because *you* think they&#039;re negligible and only because you still think in terms of that 15 * 4? I&#039;m giving you scientific reasoning about the numbers and logical evidence and you don&#039;t want to accept them. Everybody can multiply that 4 to the number of the uses of DateTime.Now in a typical codebase then multiply that to the number of requests to a web application, and then to the number of days in a month, to know what it means!

For the second point, you better read the original paper rather than 2-3 lines of it. That paper is a very old one in GO TO days with a different focus. Unfortunately, programmers just extract some quotes without knowing the context or anything. I&#039;ve read that paper (again, because it is my daily job and my field of specialty to work on compilers) and that&#039;s why I could give you the real point of what he says even though the concept of premature optimization is beyond him and his paper and it seems that it&#039;s all you know about premature optimization! If you even read those few lines carefully and with an open mind, you understand the point. Anyways, the whole point about using UtcNow vs. Now is not an optimization and you still don&#039;t get it. It is a practice. You need to write the code that way in the first place not that you are optimizing anything by writing it that way. Now is designed for a purpose as UtcNow is designed.

It&#039;s like using a screwdriver to open your refrigerator, and then saying that I could open the door with no significant difference in time, so I&#039;m doing it right. No, you&#039;re doing it wrong because your wasting resources and may hurt your refrigerator in the long time.

If you think that you should program professionally without a deep understanding of your language, then it&#039;s you being on the wrong track about the whole thing. Unfortunately, this is the case with many Microsoft developers!l DateTime is one of the core types of the .NET Framework being taught in the very first stages of learning. If you don&#039;t know it very well, you&#039;re not a good programmer.

I think I am done with this discussion. My reasons along with numbers and my original post are available to a reader and they can read and judge about the correctness of things if they have a good background in simple arithmetic mathematics. Almost one month after my original post and publishing it on some other prominent .NET communities being read by over 10000 visitors, you&#039;re the first person coming up with such a reasoning and I&#039;m really surprised. I&#039;m more surprised when you try so hard to relate my post to profilers where it doesn&#039;t have anything to do with it.</description>
		<content:encoded><![CDATA[<p>For the first point. You&#8217;re just wrong. I can&#8217;t do anything when you just want to give any reason to support something that you have asserted. You&#8217;re just saying they&#8217;re not worth worrying and that&#8217;s all you have to say. Why? Because *you* think they&#8217;re negligible and only because you still think in terms of that 15 * 4? I&#8217;m giving you scientific reasoning about the numbers and logical evidence and you don&#8217;t want to accept them. Everybody can multiply that 4 to the number of the uses of DateTime.Now in a typical codebase then multiply that to the number of requests to a web application, and then to the number of days in a month, to know what it means!</p>
<p>For the second point, you better read the original paper rather than 2-3 lines of it. That paper is a very old one in GO TO days with a different focus. Unfortunately, programmers just extract some quotes without knowing the context or anything. I&#8217;ve read that paper (again, because it is my daily job and my field of specialty to work on compilers) and that&#8217;s why I could give you the real point of what he says even though the concept of premature optimization is beyond him and his paper and it seems that it&#8217;s all you know about premature optimization! If you even read those few lines carefully and with an open mind, you understand the point. Anyways, the whole point about using UtcNow vs. Now is not an optimization and you still don&#8217;t get it. It is a practice. You need to write the code that way in the first place not that you are optimizing anything by writing it that way. Now is designed for a purpose as UtcNow is designed.</p>
<p>It&#8217;s like using a screwdriver to open your refrigerator, and then saying that I could open the door with no significant difference in time, so I&#8217;m doing it right. No, you&#8217;re doing it wrong because your wasting resources and may hurt your refrigerator in the long time.</p>
<p>If you think that you should program professionally without a deep understanding of your language, then it&#8217;s you being on the wrong track about the whole thing. Unfortunately, this is the case with many Microsoft developers!l DateTime is one of the core types of the .NET Framework being taught in the very first stages of learning. If you don&#8217;t know it very well, you&#8217;re not a good programmer.</p>
<p>I think I am done with this discussion. My reasons along with numbers and my original post are available to a reader and they can read and judge about the correctness of things if they have a good background in simple arithmetic mathematics. Almost one month after my original post and publishing it on some other prominent .NET communities being read by over 10000 visitors, you&#8217;re the first person coming up with such a reasoning and I&#8217;m really surprised. I&#8217;m more surprised when you try so hard to relate my post to profilers where it doesn&#8217;t have anything to do with it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-469</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 16 Jun 2011 22:22:40 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-469</guid>
		<description>&gt; Unfortunately, you’re trying to make it look like that I’m saying that all the performance issues in an application are due to the wrong use of DateTime.Now and am suggesting that somebody should dig into DateTime types in his application for any performance issue.

Incorrect. What I&#039;m saying is that there are many so-called &#039;performance issues&#039; in the average application like .Now vs .UtcNow, for vs foreach, hoisting, etc. that just aren&#039;t worth worrying about until they become a problem.

&gt; Addressing your second question, you’re definitely wrong about your understanding of premature optimisation. 
&gt; Using UtcNow doesn’t have any extra effort than Now. All you need is to press tab when you select it in intellisense, so you even don’t need to type extra words during programming.

Here&#039;s my understanding of premature optimisation, a quote from Donald Knuth:

&quot;Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.&quot;

For me, the performance of .Now definitely falls into the 97% category. Also note the emphasis on debugging and maintenance, not the initial writing of the code. 

&gt; You have started with my original blog post trying to convince your reader that profilers are good. This doesn’t have anything to do with a profiler. 

Not really. What I picked up in your blog post was that it stated that most programmers carelessly use frameworks they don&#039;t fully understand. This is exactly why we have abstractions. If your position is that we must know how the entire class library is implemented before we write a line of code, I couldn&#039;t disagree more.</description>
		<content:encoded><![CDATA[<p>> Unfortunately, you’re trying to make it look like that I’m saying that all the performance issues in an application are due to the wrong use of DateTime.Now and am suggesting that somebody should dig into DateTime types in his application for any performance issue.</p>
<p>Incorrect. What I&#8217;m saying is that there are many so-called &#8216;performance issues&#8217; in the average application like .Now vs .UtcNow, for vs foreach, hoisting, etc. that just aren&#8217;t worth worrying about until they become a problem.</p>
<p>> Addressing your second question, you’re definitely wrong about your understanding of premature optimisation.<br />
> Using UtcNow doesn’t have any extra effort than Now. All you need is to press tab when you select it in intellisense, so you even don’t need to type extra words during programming.</p>
<p>Here&#8217;s my understanding of premature optimisation, a quote from Donald Knuth:</p>
<p>&#8220;Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil. Yet we should not pass up our opportunities in that critical 3%.&#8221;</p>
<p>For me, the performance of .Now definitely falls into the 97% category. Also note the emphasis on debugging and maintenance, not the initial writing of the code. </p>
<p>> You have started with my original blog post trying to convince your reader that profilers are good. This doesn’t have anything to do with a profiler. </p>
<p>Not really. What I picked up in your blog post was that it stated that most programmers carelessly use frameworks they don&#8217;t fully understand. This is exactly why we have abstractions. If your position is that we must know how the entire class library is implemented before we write a line of code, I couldn&#8217;t disagree more.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keyvan Nayyeri</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-468</link>
		<dc:creator>Keyvan Nayyeri</dc:creator>
		<pubDate>Thu, 16 Jun 2011 21:33:24 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-468</guid>
		<description>Unfortunately, you have a wrong understanding of principles and it makes it hard to clarify things for you.

Addressing your first question, your question is a direct result of the wrong understanding of the whole point of my original post. Why do you think that writing that blog post, I asserted that all performance issues in an application are for DateTime.Now? I talked about a wrong practice and suggested the good practice that should be followed. That simple. Unfortunately, you&#039;re trying to make it look like that I&#039;m saying that all the performance issues in an application are due to the wrong use of DateTime.Now and am suggesting that somebody should dig into DateTime types in his application for any performance issue.

Addressing your second question, you&#039;re definitely wrong about your understanding of premature optimisation. Premature optimisation is not about ignoring little things or focusing on them. It&#039;s about trying to optimise something small by changing the design of your software and spending a lot of effort in it, and essentially, spending more time on optimisation than what will be achieved with it . Unfortunately, you have a wrong understanding of this, too. Using UtcNow doesn&#039;t have any extra effort than Now. All you need is to press tab when you select it in intellisense, so you even don&#039;t need to type extra words during programming. The improvement gain is big enough that it outweighs no effort that you made in making it better, so it is not a premature optimisation.

And again, you better read more about the way profilers are designed. There is no magic being done by profilers that you think they can catch many of errors done by a software developer missing very basic points like what I mentioned in my post. They&#039;re designed to detect special categories of bottlenecks especially those related to resource-intensive tasks. Now if you make terrible mistakes in your design, you shouldn&#039;t expect them to save you.

All in all, your reasoning is very weak and senseless. You&#039;re trying to relate things that don&#039;t relate at all. You have started with my original blog post trying to convince your reader that profilers are good. This doesn&#039;t have anything to do with a profiler. What I mentioned is a practice that should be followed regardless of using a profiler. Even if your application is doing great, you need to apply such practices to make it even better (if you&#039;re a professional developer who cares about the quality of his code).

The bottom line is: 1- A practice is a practice that should be followed no matter what. 2- A profiler is not everything and can&#039;t do everything. There are many things they can&#039;t catch and you need to follow the best practices and learn your language and platform to avoid potential problems that can&#039;t be caught by a profiler.</description>
		<content:encoded><![CDATA[<p>Unfortunately, you have a wrong understanding of principles and it makes it hard to clarify things for you.</p>
<p>Addressing your first question, your question is a direct result of the wrong understanding of the whole point of my original post. Why do you think that writing that blog post, I asserted that all performance issues in an application are for DateTime.Now? I talked about a wrong practice and suggested the good practice that should be followed. That simple. Unfortunately, you&#8217;re trying to make it look like that I&#8217;m saying that all the performance issues in an application are due to the wrong use of DateTime.Now and am suggesting that somebody should dig into DateTime types in his application for any performance issue.</p>
<p>Addressing your second question, you&#8217;re definitely wrong about your understanding of premature optimisation. Premature optimisation is not about ignoring little things or focusing on them. It&#8217;s about trying to optimise something small by changing the design of your software and spending a lot of effort in it, and essentially, spending more time on optimisation than what will be achieved with it . Unfortunately, you have a wrong understanding of this, too. Using UtcNow doesn&#8217;t have any extra effort than Now. All you need is to press tab when you select it in intellisense, so you even don&#8217;t need to type extra words during programming. The improvement gain is big enough that it outweighs no effort that you made in making it better, so it is not a premature optimisation.</p>
<p>And again, you better read more about the way profilers are designed. There is no magic being done by profilers that you think they can catch many of errors done by a software developer missing very basic points like what I mentioned in my post. They&#8217;re designed to detect special categories of bottlenecks especially those related to resource-intensive tasks. Now if you make terrible mistakes in your design, you shouldn&#8217;t expect them to save you.</p>
<p>All in all, your reasoning is very weak and senseless. You&#8217;re trying to relate things that don&#8217;t relate at all. You have started with my original blog post trying to convince your reader that profilers are good. This doesn&#8217;t have anything to do with a profiler. What I mentioned is a practice that should be followed regardless of using a profiler. Even if your application is doing great, you need to apply such practices to make it even better (if you&#8217;re a professional developer who cares about the quality of his code).</p>
<p>The bottom line is: 1- A practice is a practice that should be followed no matter what. 2- A profiler is not everything and can&#8217;t do everything. There are many things they can&#8217;t catch and you need to follow the best practices and learn your language and platform to avoid potential problems that can&#8217;t be caught by a profiler.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-467</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 16 Jun 2011 21:04:04 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-467</guid>
		<description>Keyvan:
&gt;  if you’re using DateTime.Now widely in your code, there is something definitely wrong because UTC time is basically the de facto standard for all computers and software, and you’re supposed to use it universally. 

I&#039;m not sure you can know that for sure without looking at the rest of the application. You have to optimise the whole application not just one piece of it because you happen to know that part of the framework. What I want to know is this:

Given an application that has performance problems and is littered with DateTime.Now calls everywhere, would you:

A) Immediately change all the .Now calls to .UtcNow?
or
B) Run a profiler against the application?

I would choose B because that will lead me to areas of the code that require the most attention.

&gt; The thing is that premature optimization needs to affect your software design in a negative way and give you very little improvements, but this is not the case with our situation. 

Premature optimisation has nothing to do with affecting your design (or your performance) in a negative way. It&#039;s about optimisation of an existing design for negligible benefit. You may actually improve the performance of the application but not in a way that is perceivable by the user.</description>
		<content:encoded><![CDATA[<p>Keyvan:<br />
>  if you’re using DateTime.Now widely in your code, there is something definitely wrong because UTC time is basically the de facto standard for all computers and software, and you’re supposed to use it universally. </p>
<p>I&#8217;m not sure you can know that for sure without looking at the rest of the application. You have to optimise the whole application not just one piece of it because you happen to know that part of the framework. What I want to know is this:</p>
<p>Given an application that has performance problems and is littered with DateTime.Now calls everywhere, would you:</p>
<p>A) Immediately change all the .Now calls to .UtcNow?<br />
or<br />
B) Run a profiler against the application?</p>
<p>I would choose B because that will lead me to areas of the code that require the most attention.</p>
<p>> The thing is that premature optimization needs to affect your software design in a negative way and give you very little improvements, but this is not the case with our situation. </p>
<p>Premature optimisation has nothing to do with affecting your design (or your performance) in a negative way. It&#8217;s about optimisation of an existing design for negligible benefit. You may actually improve the performance of the application but not in a way that is perceivable by the user.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dale Nunns</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-466</link>
		<dc:creator>Dale Nunns</dc:creator>
		<pubDate>Thu, 16 Jun 2011 20:08:47 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-466</guid>
		<description>Now days I write a lot of C# code for handheld devices, these devices are still rather constrained compared to our modern day desktop PC&#039;s so performance really matters.

Many people tend to fall into the &quot;premature optimisation&quot; hole and often waste many hours optimising something that does not need to be optimised. Often the biggest speed savings come from changes to your code (less loops, cutting out wasteful if statements, less boxing and un-boxing etc)

I use a similar set of rules to you... although I tend to measure twice. Then pick off any &quot;low hanging fruit&quot; and then start looking into the more complicated things if needed. Like you say often its something simple like a extra web service call, or a missing index on a database table.

BTW Reflector is probably one of the most useful apps, use it a lot to reverse engineer SDK&#039;s and workaround bugs in them.</description>
		<content:encoded><![CDATA[<p>Now days I write a lot of C# code for handheld devices, these devices are still rather constrained compared to our modern day desktop PC&#8217;s so performance really matters.</p>
<p>Many people tend to fall into the &#8220;premature optimisation&#8221; hole and often waste many hours optimising something that does not need to be optimised. Often the biggest speed savings come from changes to your code (less loops, cutting out wasteful if statements, less boxing and un-boxing etc)</p>
<p>I use a similar set of rules to you&#8230; although I tend to measure twice. Then pick off any &#8220;low hanging fruit&#8221; and then start looking into the more complicated things if needed. Like you say often its something simple like a extra web service call, or a missing index on a database table.</p>
<p>BTW Reflector is probably one of the most useful apps, use it a lot to reverse engineer SDK&#8217;s and workaround bugs in them.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keyvan Nayyeri</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-465</link>
		<dc:creator>Keyvan Nayyeri</dc:creator>
		<pubDate>Thu, 16 Jun 2011 17:01:28 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-465</guid>
		<description>Of course, not. You need to explain to me why you think this is affecting the design of code. Regardless of this situation, if you&#039;re using DateTime.Now widely in your code, there is something definitely wrong because UTC time is basically the de facto standard for all computers and software, and you&#039;re supposed to use it universally. This is not a premature optimization for sure because it has no impact on the design of your code. Perhaps you have to look at some examples of premature optimization. The thing is that premature optimization needs to affect your software design in a negative way and give you very little improvements, but this is not the case with our situation. This doesn&#039;t change your design and has reasonable improvements.

Generally speaking, you need to know that premature optimization is hard to justify because it has a variance meaning based on the situation. For our situation I&#039;d strongly disagree on that for the reasons mentioned above.</description>
		<content:encoded><![CDATA[<p>Of course, not. You need to explain to me why you think this is affecting the design of code. Regardless of this situation, if you&#8217;re using DateTime.Now widely in your code, there is something definitely wrong because UTC time is basically the de facto standard for all computers and software, and you&#8217;re supposed to use it universally. This is not a premature optimization for sure because it has no impact on the design of your code. Perhaps you have to look at some examples of premature optimization. The thing is that premature optimization needs to affect your software design in a negative way and give you very little improvements, but this is not the case with our situation. This doesn&#8217;t change your design and has reasonable improvements.</p>
<p>Generally speaking, you need to know that premature optimization is hard to justify because it has a variance meaning based on the situation. For our situation I&#8217;d strongly disagree on that for the reasons mentioned above.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-464</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 16 Jun 2011 16:20:37 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-464</guid>
		<description>I&#039;m going to throw something different at you. Can we at least agree that premature optimisation is bad? If so, perhaps by explaining to me how this is not premature optimisation, we can get somewhere.</description>
		<content:encoded><![CDATA[<p>I&#8217;m going to throw something different at you. Can we at least agree that premature optimisation is bad? If so, perhaps by explaining to me how this is not premature optimisation, we can get somewhere.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keyvan Nayyeri</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-463</link>
		<dc:creator>Keyvan Nayyeri</dc:creator>
		<pubDate>Thu, 16 Jun 2011 15:07:13 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-463</guid>
		<description>You&#039;re on a totally wrong track about performance in software. This is my everyday job as a Ph.D. student researching in Programming Languages and Compilers to optimize programs. I deal with many of such scenarios everyday and I&#039;ve never seen anyone saying something like &quot;You’re talking about a 15 x 4 microsecond difference. If you’re optimising for 0.06 ms you are wasting your time.&quot;.

Even on this argument, who has said that it&#039;s just 15 iterations? Why don&#039;t you see that even one iteration of such a call may be called 10000 times in a small web application everyday? Multiply that in 30 and see how big it can become in a month. When you think about software, you need to think about a production software with its real demands not a small prototype with one method that you run once on your local machine. This is why you&#039;ve mistaken the concept of profilers and think that they can help you avoid falling into many of such traps.

Unfortunately, you&#039;re combining this wrong view with your emphasis on using profilers rather than your knowledge to conclude something that is totally wrong. Nothing is negligible in software especially in compilers and it is important to learn the best practices and apply them rather than ignoring them because they&#039;re small (in this case they&#039;re not definitely). Such a small change in a small web application in 1-2 years is large enough and it&#039;s even more catastrophic if you&#039;re running a bigger application. Even if you&#039;re wasting only 15 minutes of your visitors&#039; time in 5 years (putting the hardware resources aside), you&#039;re doing it wrong because you could avoid that. There is no hassle in using UtcNow rather than Now!

If you want to support profilers and they&#039;re use, it&#039;s good and I recommend that, but this is the wrong topic to use in order to promote them. They&#039;re designed with a different structure that can&#039;t catch everything for you.</description>
		<content:encoded><![CDATA[<p>You&#8217;re on a totally wrong track about performance in software. This is my everyday job as a Ph.D. student researching in Programming Languages and Compilers to optimize programs. I deal with many of such scenarios everyday and I&#8217;ve never seen anyone saying something like &#8220;You’re talking about a 15 x 4 microsecond difference. If you’re optimising for 0.06 ms you are wasting your time.&#8221;.</p>
<p>Even on this argument, who has said that it&#8217;s just 15 iterations? Why don&#8217;t you see that even one iteration of such a call may be called 10000 times in a small web application everyday? Multiply that in 30 and see how big it can become in a month. When you think about software, you need to think about a production software with its real demands not a small prototype with one method that you run once on your local machine. This is why you&#8217;ve mistaken the concept of profilers and think that they can help you avoid falling into many of such traps.</p>
<p>Unfortunately, you&#8217;re combining this wrong view with your emphasis on using profilers rather than your knowledge to conclude something that is totally wrong. Nothing is negligible in software especially in compilers and it is important to learn the best practices and apply them rather than ignoring them because they&#8217;re small (in this case they&#8217;re not definitely). Such a small change in a small web application in 1-2 years is large enough and it&#8217;s even more catastrophic if you&#8217;re running a bigger application. Even if you&#8217;re wasting only 15 minutes of your visitors&#8217; time in 5 years (putting the hardware resources aside), you&#8217;re doing it wrong because you could avoid that. There is no hassle in using UtcNow rather than Now!</p>
<p>If you want to support profilers and they&#8217;re use, it&#8217;s good and I recommend that, but this is the wrong topic to use in order to promote them. They&#8217;re designed with a different structure that can&#8217;t catch everything for you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Richard</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-462</link>
		<dc:creator>Richard</dc:creator>
		<pubDate>Thu, 16 Jun 2011 14:45:50 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-462</guid>
		<description>How are the numbers self-explanatory? You&#039;re talking about a 15 x 4 microsecond difference. If you&#039;re optimising for 0.06 ms you are wasting your time. Time which could be better spent elsewhere. But again, what  do I know? Maybe the application is a game and it&#039;s negatively impacting the frame rate. The point is to measure.

The sum total of what I know about this application is contained in a single tweet. Based on that, I don&#039;t think the difference in performance between DateTime.Now and DateTime.UtcNow is an issue. The way to convince me otherwise is by showing me the profiler output of the application indicating that it is bottleneck.

What I am saying is that when it comes to performance optimisation, profiling will lead you to what you need to know. Learning class library trivia will not.</description>
		<content:encoded><![CDATA[<p>How are the numbers self-explanatory? You&#8217;re talking about a 15 x 4 microsecond difference. If you&#8217;re optimising for 0.06 ms you are wasting your time. Time which could be better spent elsewhere. But again, what  do I know? Maybe the application is a game and it&#8217;s negatively impacting the frame rate. The point is to measure.</p>
<p>The sum total of what I know about this application is contained in a single tweet. Based on that, I don&#8217;t think the difference in performance between DateTime.Now and DateTime.UtcNow is an issue. The way to convince me otherwise is by showing me the profiler output of the application indicating that it is bottleneck.</p>
<p>What I am saying is that when it comes to performance optimisation, profiling will lead you to what you need to know. Learning class library trivia will not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Keyvan Nayyeri</title>
		<link>http://owlsayswoot.therandomist.com/2011/06/16/why-you-should-profile/comment-page-1/#comment-461</link>
		<dc:creator>Keyvan Nayyeri</dc:creator>
		<pubDate>Thu, 16 Jun 2011 14:00:43 +0000</pubDate>
		<guid isPermaLink="false">http://owlsayswoot.therandomist.com/?p=63#comment-461</guid>
		<description>Your argument doesn&#039;t make much sense. There are many performance issues that can be discussed about each and every platform. Talking about DateTime.Now was just one of them and I can list many of such bad practices. I never said that this is the only bottleneck in an application and am well-aware of other bigger issues but this one is among the *hidden* aspects of a language that normally nobody notices. It&#039;s very expected to have bottlenecks in resource intensive tasks like databases and webservices.

If you&#039;re saying that the use of DateTime.Now vs. DateTime.UtcNow is not a big deal, the answer is no, you&#039;re wrong, because numbers are self-explanatory. If you&#039;re saying that there are other bad practices cause bigger performance impacts, that&#039;s an obvious thing and I never said this is the only one.</description>
		<content:encoded><![CDATA[<p>Your argument doesn&#8217;t make much sense. There are many performance issues that can be discussed about each and every platform. Talking about DateTime.Now was just one of them and I can list many of such bad practices. I never said that this is the only bottleneck in an application and am well-aware of other bigger issues but this one is among the *hidden* aspects of a language that normally nobody notices. It&#8217;s very expected to have bottlenecks in resource intensive tasks like databases and webservices.</p>
<p>If you&#8217;re saying that the use of DateTime.Now vs. DateTime.UtcNow is not a big deal, the answer is no, you&#8217;re wrong, because numbers are self-explanatory. If you&#8217;re saying that there are other bad practices cause bigger performance impacts, that&#8217;s an obvious thing and I never said this is the only one.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

