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

Back to Subject List

Old thread has been locked -- no new posts accepted in this thread
???
03/16/05 09:28
Read: times


 
#89764 - If you need to be optimum - don't use C
Responding to: ???'s previous message

For years I crafted highly optimised asm code for many processors - I sweat blood on some jobs. I was told that the 'c' compilers would equal the best handcrafted assembler so I had to try it out. The reality is I can beat the compiler hands down for both speed and code density. Then I read 'Code Complete' which opened my eyes to the issues of 'optimisation'. I now write most of my code in 'c' and not worry too much about optimisation unless certain sections of code are proven to have a speed issue. Assembler is my last choice. Algorithmic optimisation generally gives the best results - recently I looked at two methods of CRC generation/checking for MODBUS. I had always used the looped method as it used the least code - it was dog slow- one a test packet it was taking around 65mS (including overhead). Changing to a table driven method drove the time down to 15mS - at the expense of code space (which I had plenty of). Had I just coded the looped code in assembler it would have been faster - but probably not as fast as the table driven code. Also, I could've coded the table driven code in assembler and got it a little faster - not 50mS faster though!

So, if you'r prepared to sacrifice a bit of outright performance and code size, 'c' is just fine. I write more code ,faster and with less bugs - that's what my customers want. If you need more code space, just buy a bigger micro - which isn't much of a burden these days. Once you get over the mental objection and start writing code - it all gets forgotten for the most part. The magic compiler does its job and we're happy!

It's a bit like never looking into the kitchen of your favourite restaurant - you might not like what you see! But the food tastes good.









List of 63 messages in thread
TopicAuthorDate
Optimized Code for Keil C Compiler            01/01/70 00:00      
   well            01/01/70 00:00      
      optimize Keil            01/01/70 00:00      
         Great suggestions            01/01/70 00:00      
            Have we been taken over            01/01/70 00:00      
               Thanks for great suggestion!            01/01/70 00:00      
                  SDCC without headaches...            01/01/70 00:00      
   student??            01/01/70 00:00      
      cost?            01/01/70 00:00      
      SDCC            01/01/70 00:00      
   C51 Primer            01/01/70 00:00      
   If you need to be optimum - don't use C            01/01/70 00:00      
      Search; Manual            01/01/70 00:00      
   does not jive            01/01/70 00:00      
   glue code            01/01/70 00:00      
   Post it if...            01/01/70 00:00      
   C limitations            01/01/70 00:00      
      Kind of is a problem            01/01/70 00:00      
         Poor old 'C'            01/01/70 00:00      
            I disagree            01/01/70 00:00      
               Let's talk about goto...            01/01/70 00:00      
                  file-scope globals            01/01/70 00:00      
            Asm vs C            01/01/70 00:00      
               absolutotally beautiful            01/01/70 00:00      
               Asm vs C            01/01/70 00:00      
                  Old Chestnuts            01/01/70 00:00      
                     perfectly valid for a one man project            01/01/70 00:00      
                        many men            01/01/70 00:00      
                        re my above post            01/01/70 00:00      
                     Known to every 'C' programmer            01/01/70 00:00      
                        Asset or Liability?            01/01/70 00:00      
                           Standard library a liability?            01/01/70 00:00      
                              C Library            01/01/70 00:00      
                                 ASM library            01/01/70 00:00      
                                    Libraries            01/01/70 00:00      
                                       Or not            01/01/70 00:00      
                                          Stuff            01/01/70 00:00      
                                          My Stuff            01/01/70 00:00      
                           Certainly not a liability!            01/01/70 00:00      
                  Passe            01/01/70 00:00      
                     Graphics and Hieroglyphics...            01/01/70 00:00      
                        I disagree!            01/01/70 00:00      
                           Fully agree            01/01/70 00:00      
                              Graphical design & code-generation            01/01/70 00:00      
                                 Here is some appple to apple comparison            01/01/70 00:00      
                                    a small correction            01/01/70 00:00      
                                    Apples vs Apple Trees?            01/01/70 00:00      
                                    OT labview            01/01/70 00:00      
                                       OT- Replied...            01/01/70 00:00      
      gurus            01/01/70 00:00      
         Best Person for the Job            01/01/70 00:00      
            Best of both worlds            01/01/70 00:00      
               Becoming effective with embedded C            01/01/70 00:00      
      More thoughts on C            01/01/70 00:00      
         Software Engineering            01/01/70 00:00      
            Agree, with caveat            01/01/70 00:00      
               One project, One file            01/01/70 00:00      
                  One project, One file - metalink            01/01/70 00:00      
                     Of course will do..            01/01/70 00:00      
                  One file development            01/01/70 00:00      
                  One project, Multiple files            01/01/70 00:00      
   In a land far far away....            01/01/70 00:00      
      some loon            01/01/70 00:00      

Back to Subject List