Changes between Version 24 and Version 25 of ResumedC


Ignore:
Timestamp:
May 24, 2009, 4:17:00 PM (16 years ago)
Author:
Thanatermesis
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • ResumedC

    v24 v25  
    393393
    394394
    395 
    396 
    397 
     395==== How to Optimize ====
     396 * Loop Ordering: Nested loops should be ordered with the simplest loop outermost and the most complex loops innermost
     397 * Powers of 2: Use a power of 2 when doing integer multiply or divide. Most compilers substitute a shift for the operation.
     398 * Pointers: Using pointers is faster than indexing an array.
     399 * Macros: Using a macro eliminates the overhead associated with a function call. It also makes the code bigger and a little more difficult to debug.
     400 * Reduction in strength: Use cheap operations, there's a table of cost of common operations:
     401|| '''Operation''' || '''Relative cost''' ||
     402|| printf and scanf || 1000 ||
     403|| malloc and free || 800 ||
     404|| trigonometric functions (sin, cos...) || 500 ||
     405|| floating point (any operation) || 100 ||
     406|| integer divide || 30 ||
     407|| integer multiple || 20 ||
     408|| function call || 10 ||
     409|| simple array index || 6 ||
     410|| shifts || 5 ||
     411|| add/substract || 5 ||
     412|| pointer dereference || 2 ||
     413|| bitwise and, or, not || 1 ||
     414|| logical and, or, not || 1 ||
    398415
    399416