You write benchmark. There is important speed of benchmark itself. I think you should replace `getmicrotime` by `microtime(true)`