Email: Password: Remember Me | Create Account (Free)

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
Russ Cooper
08/07/07 07:16
Read: 639 times
Phoenix, Az

#142860 - Balance
Responding to: Jan Waclawek's previous message
Jan said:
I think it makes sense to build such snippets - this sort of algorithms is used widely, has well defined inputs and outputs, and IMHO it always makes sense to try to do things as good as possible (hello, Russ! :-) )

Hello, Jan. Thanks for inviting me to the party!

Of course I agree that it always makes sense to do the best job possible, and (as you know) I have spent many hours playing around with little snippets like you are talking about, trying to shave off a cycle here or a byte there. That sort of thing can be very educational and a lot of fun.

However, when working on a real project, for a real employer who's paying me real money, I think it's important to recognize that "best" doesn't necessarily mean "smallest" or "fastest". You said it yourself:

The prudent programmer tries to perform a multi-variable optimisation.

It's easy to focus on easily-measured variables like code size and execution speed. However, there are also less tangible things to consider, such as maintainability, portability, reliability, and cost. The first trick is to learn to balance all of the variables. Then when you have that figured out, try to realize that the importance of each one of the variables varies from project to project and situation to situation.

Sometimes it will make sense to make the code fast instead of making it small. Sometimes it won't.

Sometimes it will make sense to use ASM instead of C. Sometimes it won't.

Sometimes it will make sense to add hardware instead of adding complexity to the software. Sometimes it won't.

Sometimes it will make sense to spend an hour making a function two cycles faster instead of going home to play ball with your kid. Sometimes it won't.

-- Russ

List of 32 messages in thread
CRC16 CCITT - What a challenge!      Jan Waclawek      08/06/07 13:08      
   Have you seen this?      Richard Erlacher      08/06/07 17:40      
      Of course!      Jan Waclawek      08/07/07 02:36      
         Balance      Russ Cooper      08/07/07 07:16      
            I know, Russ,      Jan Waclawek      08/07/07 07:53      
         Code? What code?      Russ Cooper      08/07/07 07:24      
            in the code library - look to the left column      Jan Waclawek      08/07/07 07:37      
               Thanks! I missed that note in the first post.      Russ Cooper      08/07/07 08:37      
   I need a hint      Russ Cooper      08/11/07 00:56      
      write down the bits      Jan Waclawek      08/11/07 01:22      
         Thanks for the hint      Russ Cooper      08/12/07 11:12      
            Your observations plus a comparison in C      Dan Henry      08/12/07 11:58      
               The rest of the story ...      Russ Cooper      08/12/07 16:43      
                  Compilers, but Keil C51 8.09 for the stated 28~      Dan Henry      08/12/07 17:04      
                  and this processes only a nibble, isn't it...      Jan Waclawek      08/12/07 23:27      
                     No, it process the entire byte.      Dan Henry      08/13/07 12:59      
                        now it\'s my pencil time...      Jan Waclawek      08/13/07 13:40      
                           FYFI      Dan Henry      08/13/07 14:40      
                              Clarification re: 8-bit optimized term      Dan Henry      08/13/07 17:46      
                              on optimisation      Jan Waclawek      08/14/07 02:56      
                                 Jan's optimization      Dan Henry      08/14/07 07:16      
                                    Re: on optimization      Dan Henry      08/19/07 09:18      
                                       Can you please be more specific?      Jan Waclawek      08/19/07 13:56      
                                          More specifically ...      Dan Henry      08/25/07 15:10      
            and what      Jan Waclawek      08/12/07 23:27      
               More on checksums        Russ Cooper      08/18/07 09:59      
   No reason to hide the excreted code      Dan Henry      08/12/07 17:41      
      Excreted code needs context like any other code      Dan Henry      08/12/07 19:01      
   One More Comment      Michael Karas      08/13/07 02:45      
      ... and a marginal remark ...      Jan Waclawek      08/13/07 07:02      
         Init all ones frequently specified      Dan Henry      08/13/07 13:06      
   18 cycles      Jan Waclawek      08/16/07 08:16      

Back to Subject List