I discovered this significant slowdown when functional tests took substancially longer than expected on my new M1 macbook pro. (completes in ~250 seconds on my 1950x, and 3000 seconds on m1)
To validate this issue, I deployed two new regtest networks (both compiled locally), one on an Amd 1950x CPU running ubuntu 21.10, and one on a 16 in m1 macbook pro 10 core.
I found that the m1 macbook had substantially better results in benchmarks compared to x86, ~32% faster in the AssembleBlock benchmark for example. However, the functional tests were very slow, and RPC was very slow. It is my current believe that there is some issues in RPC handling / code that is very heavily slowing down the functional tests.
I compared some rpc calls in m1 and x86.
I found m1 rpc calls were around 10x slower.
For example, getblockchaininfo took 0.5 seconds on m1, 0.003 seconds on x86. I’ve not been able to replicate this specific issue now.. Non-db / disk involved rpc calls seem mostly comparable between the two systems.
Generating 100 blocks took 23 seconds on m1, and 2.4 seconds on x86.
If someone has any ideas as to why this is so slow, or how to fix it, I am all ears!
Also, if someone on mac (non-m1) could replicate this test and post their information (so we can compare m1 mac to non-m1 mac) that’d be highly appreciated.
If other developers using m1 could share their experiences, that’d be helpful.