Is there a way to measure performance without depending on the hardware, i.e. two entirely different computers get the same score for the same code?
I could probably run the program on a server or something, but something local feels more reliable.
perf and valgrind might be good places to start. Although, some programs aren’t going to have the exact same executed instruction count between runs, and it’s possible that executed instruction count can depend on the exact CPU that’s running. You can probably mitigate the latter by running valgrind and the program inside of QEMU.
Thank you! That’s exactly the kinda thing I was looking for!
Yes, you can consider the algorithmic complexity of your code, which is independent of any hardware.
Sure, but that makes a lot of optimizations nonexistent (e.g. cloning the input on an O(n) algorithm is “free”)
You don’t need to use big-O. You can calculate the full complexity in algebraic notation. It’s just a lot more work as you don’t get to discard terms.