"Your requirements should include a minimum spec at which the client responds reasonably."
Even then it can be difficult to predict how fast that system is. Processor speed and memory size
and the other commonly mentioned parameters don't always give the full picture - two apparently
identical PCs can perform differently. You may not even have such a PC to test on.
I agree with your comment about 0.00001%, but I get the feeling that some programmers might just
check to ensure that it's fast enough on their development PC, and not consider that very worthwhile
speed improvements on slower PCs can still be made by making code changes.
I tend to mentally convert phases like "as fast as possible" into "as fast as is reasonably
possible".
Your requirements should include a minimum spec at which the client
responds reasonably.
It's certainly easier to define that than it is to optimise *forever*.
(There's always going to be something you can do to squeeze an extra
0.0001% of performance out of a system - but it's not a useful thing to
do.)
> "Your requirements should include a minimum spec at which the client responds reasonably."
>
> Even then it can be difficult to predict how fast that system is. Processor speed and memory size
> and the other commonly mentioned parameters don't always give the full picture - two apparently
> identical PCs can perform differently. You may not even have such a PC to test on.
While it's true that there are lots of factors to consider, it seems
fairly pointless making performance improvements if you've got no idea
when you're "done". I would say it's important practice to have a test
machine somewhere which is used as a lowest common denominator. It
won't cover *all* bases, but it's a good starting point.
> I agree with your comment about 0.00001%, but I get the feeling that some programmers might just
> check to ensure that it's fast enough on their development PC, and not consider that very
> worthwhile speed improvements on slower PCs can still be made by making code changes.
On the other hand, other programmers tend to waste time on micro-
optimisations which will have no useful effect, and make code harder
to maintain.
> I tend to mentally convert phases like "as fast as possible" into "as fast as is reasonably
> possible".
But the definition of "reasonably" depends on who you ask, and without
both measurement and a goal, you're likely to waste time optimising
code that isn't really a problem to anyone.
Jon
Jon - 10 Mar 2008 13:55 GMT
Jon: I agree with much of what you say. "Reasonable" to me is a balancing act.
Jon
On Mar 10, 11:24 am, "Jon" <.> wrote:
> "Your requirements should include a minimum spec at which the client responds reasonably."
>
> Even then it can be difficult to predict how fast that system is. Processor speed and memory size
> and the other commonly mentioned parameters don't always give the full picture - two apparently
> identical PCs can perform differently. You may not even have such a PC to test on.
While it's true that there are lots of factors to consider, it seems
fairly pointless making performance improvements if you've got no idea
when you're "done". I would say it's important practice to have a test
machine somewhere which is used as a lowest common denominator. It
won't cover *all* bases, but it's a good starting point.
> I agree with your comment about 0.00001%, but I get the feeling that some programmers might just
> check to ensure that it's fast enough on their development PC, and not consider that very
> worthwhile speed improvements on slower PCs can still be made by making code changes.
On the other hand, other programmers tend to waste time on micro-
optimisations which will have no useful effect, and make code harder
to maintain.
> I tend to mentally convert phases like "as fast as possible" into "as fast as is reasonably
> possible".
But the definition of "reasonably" depends on who you ask, and without
both measurement and a goal, you're likely to waste time optimising
code that isn't really a problem to anyone.
Jon