title: How to calculate MIPS for an algorithm for ARM processor
body: <p>I have been asked recently to produced the MIPS (million of instructions per second) for an algorithm we have developed. The algorithm is exposed by a set of C-style functions. We have exercise the code on a Dell Axim to benchmark the performance under different input.</p>
  
  <p>This question came from our hardware vendor, but I am mostly a HL software developer so I am not sure how to respond to the request. Maybe someone with similar HW/SW background can help...</p>
  
  <ol>
  <li><p>Since our algorithm is not real time, I don't think we need to quantify it as MIPS. Is it possible to simply quote the total number of assembly instructions?</p></li>
  <li><p>If 1 is true, how do you do this (ie. how to measure the number of assembly instructions) either in general or specifically for ARM/XScale?</p></li>
  <li><p>Can 2 be performed on a WM device or via the Device Emulator provided in VS2005?</p></li>
  <li><p>Can 3 be automated?</p></li>
  </ol>
  
  <p>Thanks a lot for your help.
  Charles</p>
  
  <hr>
  
  <p>Thanks for all your help. I think S.Lott hit the nail. And as a follow up, I now have more questions.</p>
  
  <p>5 Any suggestion on how to go about measuring MIPS? I heard some one suggest running our algorithm and comparing it against Dhrystone/Whetstone benchmark to calculate MIS.</p>
  
  <p>6 Since the algorithm does not need to be run in real time, is MIPS really a useful measure? (eg. factorial(N)) What are other ways to quantity the processing requirements? (I have already measured the runtime performance but it was not a satisfactory answer.)</p>
  
  <p>7 Finally, I assume MIPS is a crude estimate and would be dep. on compiler, optimization settings, etc? </p>