Range of dev boards

So I wasn’t doing anything today and so I thought I would see how the different boards stack up against each other.

I had hoped the Zero Pro had better results but am impressed with the Edison.


BenchMark.pdf (56 KB)


This doesn't seem to be a very level playing field! The times for the Edison are for 100 times more "iterations". What are these iterations? Post the code please. I could try it on a Maple Mini clone for comparison.


I added the Photon to the attached benchmark. Impressive little Photon.

I think it is plenty fair. The Edison is just so fast. As you can see, the 10k iterations is the common thread and this isn’t some government standards calibration study. Just something I did cause I had some time and was curious.

I just searched for “arduino benchmark” and picked the first one then tweaked it a little. If you have two different Arduinos, (and who doesn’t), then you should be able to do the same with any bench mark you run.

I gotta say, I think Intel has a winner with the Edison. Like the Photon only you don’t have to use their website to do everything.

BenchMark.pdf (56.5 KB)

Wait, are you saying that the “time (ms)” column is per iteration, not in total? That would make it considerably more fair!

No, it is total time for the number of iterations. The Edison is just so fast that when it runs 1k iterations the number is less than 1 and I didn't feel like making a change to show microseconds.

All boards ran the 10K which gives you a reference across all boards. The Edison is fast and that is demonstrated here. I don't get what's not fair about that.

What's the benchmark code?
Assembler output, to verify optimizations?

I just searched for "arduino benchmark" and picked the first one then tweaked it a little. If you have two different Arduinos, (and who doesn't), then you should be able to do the same with any bench mark you run.

But we can't get results to compare to yours, because we don't know for certain which benchmark you found ("the first one" is a bit uncertain), or what tweaks you made. All we can do is get results to compare the different Arduino's we have individually, which is only of limit use, doesn't help us choose a new Arduino/mcu to buy for example.

I don't get what's not fair about that.

I only meant that it seemed unfair on the Edison. Anyone searching for benchmarks might find yours, not notice that you were not being consistent about the number of iterations, and undervalue the Edison's speed by a factor of 100.

So can we have your benchmark code, so we can compare scores of mcus you don;t have?

Please post the benchmark code, as run - otherwise the benchmark data is not meaningful.

Depending on the content of the benchmark, it could be unfair to one processor or another - writing benchmarks that are biased is easy to do accidentally, and doing it intentionally is as old as benchmarks are.

This wasn't a scientific research project for NIST, just something fun to do. I think this is the code I used, n-body benchmark on Galileo/Arduino · GitHub but it really doesn't matter all that much because you can use any code you want as long as it functions that same across all devices under test. Once you get your numbers, I think you will find the difference between your results proportionate with mine.

Again, I do not work for NIST and this wasn't done for any important reason at all.

You should take the times before any output, and remove delay(), unless you want to benchmark the Serial output. Update your code and try again.

For heavy floating point calculations and number crunching a GPU with FPU is more useful than a microcontroller. See the difference between the Galileo and desktop CPUs.