stakwork/sphinx-key

Latency Benchmarks

Opened this issue · 4 comments

A couple of benchmarks run 08/12 on 9a36777:

AWS BROKER, ESP32, PERSISTENCE, LOGS
0.1, 0.2 seconds for connect
3, 3 seconds for fundchannel
5, 5 seconds for keysend

MACOS BROKER, ESP32, PERSISTENCE, LOGS
0.09 for connect
2.511 for fundchannel
4.365 for keysend

MACOS BROKER, ESP32, NO PERSISTENCE, LOGS
0.091 for connect
2.077 for fundchannel
4.137 for keysend

MAC OS BROKER, ESP32 NO PERSISTENCE, NO LOGS
0.073, 0.114, 0.083 for connect
3.129, 1.440, 1.541 for fundchannel
2.225, 2.402, 2.590 for keysend

MAC OS BROKER, ESP32 PERSISTENCE, NO LOGS
0.214, 0.212, 0.291 for connect
2.170, 1.762, 2.178 for fundchannel
3.116, 3.503, 3.131 for keysend

AWS BROKER, ESP32 PERSISTENCE, NO LOGS
0.149, 0.296, 0.179 for connect
2.489, 2.307, 2.252 for fundchannel
4.301, 4.032, 4.025 for keysend

BASIC AWS VLS
.006 for connect
0.105 for fundchannel
0.9 seconds for keysend

AWS GRPC VLS, MACOS GRPC VLS
0.102, 0.101, 0.101 for connect
1.154, 1.160, 1.120 for fundchannel
2.247, 2.210, 2.271 for keysend
MAC OS BROKER, ESP32 PERSISTENCE, NO LOGS
0.172, 0.200, 0.180 for connect
0.110, 0.119, 0.106 for connect
2.890, 2.999, 4.285 for fundchannel
4.913, 3.231, 2.369, for fundchannel
4.386, 4.731, 4.240 for keysend
4.078, 5.008, 4.791 for keysend

The above benchmarks were at a8072d9 , built using deploy.sh ie. all binaries running on the esp were in release mode.

Edit: Since the ESP32-C3 is single-core, I'm starting to think that having all of the threads we have competing for attention is slowing down the tasks we really care about above. Tomorrow for example I'll turn off the LED thread and see if that makes things faster.

MAC OS BROKER, ESP32 PERSISTENCE, NO LOGS, NO LED THREAD
0.231, 0.151, 0.200 for connect
0.133, 0.408, 0.314 for connect
2.665, 2.539, 2.246 for fundchannel
2.973, 2.534, 2.039 for fundchannel
3.685, 3.676, 4.039 for keysend
3.756, 3.452, 4.003 for keysend.

keysend average: 3.7685
previous keysend average: 4.539 [ in previous report above ]

Conclusion: gain ~3/4 a second when removing LED thread.

(3.880 + 3.994 + 3.894 + 3.796 + 4.007 + 3.522) / 6

keysend average: 3.8488333333 - trying to reproduce yesterday's result, is in line yes 👍

Now remove all the logs in the loop of the signer:

(3.086+2.643+2.588+2.943+2.896+2.643+ 3.685+2.224+2.429+3.739+3.058+2.567)/12

keysend average: 2.87

Allocate the output_buffer only once at setup, then reuse same memory block again throughout the lifecycle.

MAC OS BROKER, ESP32 PERSISTENCE, NO LOGS, NO LED THREAD
2.457, 2.626, 2.023, for fundchannel
2.851, 2.164, 2.879, 2.439, 2.454, 3.184, 2.303, 2.483, 2.836, 2.518, 3.250, 2.817 for keysend, new average: 2.68.

keysend average: 2.68.