Created
April 11, 2020 00:08
-
-
Save toddlipcon/6ddc5527c53082c781fd7d40fc996bae to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Legend | |
=================== | |
Methods: | |
fd: client sends a file descriptor for the server to fill | |
s-write: server writes data the passed fd using write() syscall | |
s-mmap: server mmaps() the passed fd and writes using memset() | |
s-reuse: server holds on to the mmapped region across calls | |
c-reuse: client holds on to the mmapped region across calls | |
sidecar: server sends back data over unix socket | |
nt: server uses nontemporal store instructions to write | |
NOTE: s-reuse without c-reuse isn't very effective since the server | |
will detect that it cant actually reuse the mapped buffer, since the | |
client provided a new one. | |
Columns designate which core each thread is bound to: | |
client: the client 'user' thread | |
c-rx: the client reactor thread | |
s-rx: the server reactor thread | |
worker: the server RPC worker thread | |
Core notation: | |
SaCbTc: socket a core b thread c | |
Speed-limit (optimal) performance: 7997.6 MB/sec | |
method client c-rx s-rx worker MB/sec | |
# all-same-core | |
fd(s-write) S0C0T0 S0C0T0 S0C0T0 S0C0T0 1393.5 | |
fd(s-mmap) S0C0T0 S0C0T0 S0C0T0 S0C0T0 1254.0 | |
fd(s-mmap,nt) S0C0T0 S0C0T0 S0C0T0 S0C0T0 1032.0 | |
fd(s-mmap,s-reuse) S0C0T0 S0C0T0 S0C0T0 S0C0T0 1231.5 | |
fd(s-mmap,s-reuse,nt) S0C0T0 S0C0T0 S0C0T0 S0C0T0 1021.1 | |
fd(s-write,c-reuse) S0C0T0 S0C0T0 S0C0T0 S0C0T0 2915.5 | |
fd(s-mmap,c-reuse) S0C0T0 S0C0T0 S0C0T0 S0C0T0 2828.6 | |
fd(s-mmap,c-reuse,nt) S0C0T0 S0C0T0 S0C0T0 S0C0T0 2043.9 | |
fd(s-mmap,c-reuse,s-reuse) S0C0T0 S0C0T0 S0C0T0 S0C0T0 5780.7 | |
fd(s-mmap,c-reuse,s-reuse,nt) S0C0T0 S0C0T0 S0C0T0 S0C0T0 3366.6 | |
sidecar S0C0T0 S0C0T0 S0C0T0 S0C0T0 2186.0 | |
sidecar,nt S0C0T0 S0C0T0 S0C0T0 S0C0T0 1741.1 | |
# client-server-cross-core | |
fd(s-write) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1349.8 | |
fd(s-mmap) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1215.4 | |
fd(s-mmap,nt) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1032.5 | |
fd(s-mmap,s-reuse) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1271.5 | |
fd(s-mmap,s-reuse,nt) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1065.0 | |
fd(s-write,c-reuse) S0C0T0 S0C0T0 S0C1T0 S0C1T0 2384.3 | |
fd(s-mmap,c-reuse) S0C0T0 S0C0T0 S0C1T0 S0C1T0 2773.7 | |
fd(s-mmap,c-reuse,nt) S0C0T0 S0C0T0 S0C1T0 S0C1T0 1983.8 | |
fd(s-mmap,c-reuse,s-reuse) S0C0T0 S0C0T0 S0C1T0 S0C1T0 4351.5 | |
fd(s-mmap,c-reuse,s-reuse,nt) S0C0T0 S0C0T0 S0C1T0 S0C1T0 3403.5 | |
sidecar S0C0T0 S0C0T0 S0C1T0 S0C1T0 1944.8 | |
sidecar,nt S0C0T0 S0C0T0 S0C1T0 S0C1T0 1313.9 | |
# client-server-cross-socket | |
fd(s-write) S0C0T0 S0C0T0 S1C0T0 S1C0T0 736.6 | |
fd(s-mmap) S0C0T0 S0C0T0 S1C0T0 S1C0T0 683.7 | |
fd(s-mmap,nt) S0C0T0 S0C0T0 S1C0T0 S1C0T0 660.0 | |
fd(s-mmap,s-reuse) S0C0T0 S0C0T0 S1C0T0 S1C0T0 670.2 | |
fd(s-mmap,s-reuse,nt) S0C0T0 S0C0T0 S1C0T0 S1C0T0 650.0 | |
fd(s-write,c-reuse) S0C0T0 S0C0T0 S1C0T0 S1C0T0 1096.0 | |
fd(s-mmap,c-reuse) S0C0T0 S0C0T0 S1C0T0 S1C0T0 1425.4 | |
fd(s-mmap,c-reuse,nt) S0C0T0 S0C0T0 S1C0T0 S1C0T0 1669.0 | |
fd(s-mmap,c-reuse,s-reuse) S0C0T0 S0C0T0 S1C0T0 S1C0T0 1936.9 | |
fd(s-mmap,c-reuse,s-reuse,nt) S0C0T0 S0C0T0 S1C0T0 S1C0T0 3179.3 | |
sidecar S0C0T0 S0C0T0 S1C0T0 S1C0T0 982.2 | |
sidecar,nt S0C0T0 S0C0T0 S1C0T0 S1C0T0 858.7 | |
# every-hop-crosses-core | |
fd(s-write) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1223.8 | |
fd(s-mmap) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1101.8 | |
fd(s-mmap,nt) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1111.1 | |
fd(s-mmap,s-reuse) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1152.0 | |
fd(s-mmap,s-reuse,nt) S0C0T0 S0C1T0 S0C2T0 S0C3T0 987.5 | |
fd(s-write,c-reuse) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1962.0 | |
fd(s-mmap,c-reuse) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1974.8 | |
fd(s-mmap,c-reuse,nt) S0C0T0 S0C1T0 S0C2T0 S0C3T0 1949.9 | |
fd(s-mmap,c-reuse,s-reuse) S0C0T0 S0C1T0 S0C2T0 S0C3T0 4656.1 | |
fd(s-mmap,c-reuse,s-reuse,nt) S0C0T0 S0C1T0 S0C2T0 S0C3T0 3092.3 | |
sidecar S0C0T0 S0C1T0 S0C2T0 S0C3T0 1513.1 | |
sidecar,nt S0C0T0 S0C1T0 S0C2T0 S0C3T0 1278.3 | |
# every-hop-crosses-socket | |
fd(s-write) S0C0T0 S1C0T0 S0C0T0 S1C0T0 757.3 | |
fd(s-mmap) S0C0T0 S1C0T0 S0C0T0 S1C0T0 682.9 | |
fd(s-mmap,nt) S0C0T0 S1C0T0 S0C0T0 S1C0T0 668.4 | |
fd(s-mmap,s-reuse) S0C0T0 S1C0T0 S0C0T0 S1C0T0 677.2 | |
fd(s-mmap,s-reuse,nt) S0C0T0 S1C0T0 S0C0T0 S1C0T0 656.5 | |
fd(s-write,c-reuse) S0C0T0 S1C0T0 S0C0T0 S1C0T0 1140.4 | |
fd(s-mmap,c-reuse) S0C0T0 S1C0T0 S0C0T0 S1C0T0 1522.0 | |
fd(s-mmap,c-reuse,nt) S0C0T0 S1C0T0 S0C0T0 S1C0T0 1978.9 | |
fd(s-mmap,c-reuse,s-reuse) S0C0T0 S1C0T0 S0C0T0 S1C0T0 2381.3 | |
fd(s-mmap,c-reuse,s-reuse,nt) S0C0T0 S1C0T0 S0C0T0 S1C0T0 3866.4 | |
sidecar S0C0T0 S1C0T0 S0C0T0 S1C0T0 676.2 | |
sidecar,nt S0C0T0 S1C0T0 S0C0T0 S1C0T0 726.4 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment