Skip to content

Instantly share code, notes, and snippets.

@johnchen902
Last active April 4, 2017 15:48
Show Gist options
  • Save johnchen902/851d3ec0795eff12f6d9283f89ac9ed2 to your computer and use it in GitHub Desktop.
Save johnchen902/851d3ec0795eff12f6d9283f89ac9ed2 to your computer and use it in GitHub Desktop.
Network namespace performance
#define _GNU_SOURCE
#include <math.h>
#include <sched.h>
#include <signal.h>
#include <stdio.h>
#include <sys/wait.h>
#include <time.h>
#include <unistd.h>
#define CHILD_STACK_SIZE (1 << 15)
static int child_main(void *param) { (void) param; return 0; }
static int child_stack[CHILD_STACK_SIZE];
int main() {
double sum = 0, sumsq = 0;
for(int i = 1; i <= 100; i++) {
struct timespec begin;
clock_gettime(CLOCK_MONOTONIC_RAW, &begin);
int flags = SIGCHLD | CLONE_NEWNET | CLONE_NEWUSER;
clone(child_main, child_stack + CHILD_STACK_SIZE, flags, NULL);
wait(NULL);
struct timespec end;
clock_gettime(CLOCK_MONOTONIC_RAW, &end);
double t = (end.tv_sec - begin.tv_sec) + (end.tv_nsec - begin.tv_nsec) * 1e-9;
sum += t;
sumsq += t * t;
double avg = sum / i;
double sd = sqrt(sumsq / i - avg * avg);
printf("i=%d t=%f avg=%f sd=%f\n", i, t, avg, sd);
// usleep(100000);
}
}
i=1 t=0.001103 avg=0.001103 sd=0.000000
i=2 t=0.854306 avg=0.427704 sd=0.426602
i=3 t=0.001290 avg=0.285566 sd=0.402160
i=4 t=0.001064 avg=0.214441 sd=0.369426
i=5 t=0.001068 avg=0.171766 sd=0.341270
i=6 t=0.001129 avg=0.143327 sd=0.317960
i=7 t=0.001197 avg=0.123022 sd=0.298545
i=8 t=0.001101 avg=0.107782 sd=0.282160
i=9 t=0.001009 avg=0.095918 sd=0.268131
i=10 t=0.001068 avg=0.086433 sd=0.255958
i=11 t=0.001058 avg=0.078672 sd=0.245277
i=12 t=0.001059 avg=0.072204 sd=0.235813
i=13 t=0.001002 avg=0.066727 sd=0.227354
i=14 t=0.001058 avg=0.062037 sd=0.219736
i=15 t=0.001006 avg=0.057968 sd=0.212830
i=16 t=0.001014 avg=0.054408 sd=0.206533
i=17 t=0.001101 avg=0.051272 sd=0.200758
i=18 t=0.000995 avg=0.048479 sd=0.195442
i=19 t=0.001013 avg=0.045981 sd=0.190524
i=20 t=0.001027 avg=0.043733 sd=0.185958
i=21 t=0.000953 avg=0.041696 sd=0.181705
i=22 t=0.001028 avg=0.039848 sd=0.177729
i=23 t=0.001047 avg=0.038161 sd=0.174003
i=24 t=0.000961 avg=0.036611 sd=0.170501
i=25 t=0.001010 avg=0.035187 sd=0.167202
i=26 t=0.001007 avg=0.033872 sd=0.164087
i=27 t=0.001033 avg=0.032656 sd=0.161139
i=28 t=0.000965 avg=0.031524 sd=0.158344
i=29 t=0.001046 avg=0.030473 sd=0.155690
i=30 t=0.001067 avg=0.029493 sd=0.153164
i=31 t=0.001020 avg=0.028574 sd=0.150757
i=32 t=0.001017 avg=0.027713 sd=0.148460
i=33 t=0.001035 avg=0.026905 sd=0.146265
i=34 t=0.000992 avg=0.026143 sd=0.144165
i=35 t=0.001006 avg=0.025424 sd=0.142152
i=36 t=0.001042 avg=0.024747 sd=0.140221
i=37 t=26.310849 avg=0.735182 sd=4.264854
i=38 t=0.001049 avg=0.715863 sd=4.210004
i=39 t=0.001229 avg=0.697539 sd=4.157214
i=40 t=0.001093 avg=0.680128 sd=4.106360
i=41 t=0.001103 avg=0.663566 sd=4.057326
i=42 t=0.001049 avg=0.647792 sd=4.010005
i=43 t=0.001135 avg=0.632754 sd=3.964301
i=44 t=0.001397 avg=0.618405 sd=3.920123
i=45 t=0.001428 avg=0.604694 sd=3.877388
i=46 t=0.001371 avg=0.591578 sd=3.836020
i=47 t=0.001349 avg=0.579020 sd=3.795948
i=48 t=0.001384 avg=0.566986 sd=3.757104
i=49 t=0.001376 avg=0.555443 sd=3.719429
i=50 t=0.001438 avg=0.544363 sd=3.682863
i=51 t=0.001120 avg=0.533711 sd=3.647356
i=52 t=0.001096 avg=0.523469 sd=3.612855
i=53 t=0.001049 avg=0.513612 sd=3.579315
i=54 t=0.000942 avg=0.504118 sd=3.546692
i=55 t=0.000939 avg=0.494969 sd=3.514945
i=56 t=0.001044 avg=0.486149 sd=3.484034
i=57 t=0.000921 avg=0.477636 sd=3.453925
i=58 t=0.000959 avg=0.469418 sd=3.424582
i=59 t=0.001015 avg=0.461478 sd=3.395974
i=60 t=0.000975 avg=0.453803 sd=3.368072
i=61 t=0.000969 avg=0.446380 sd=3.340845
i=62 t=0.000959 avg=0.439196 sd=3.314269
i=63 t=0.001050 avg=0.432241 sd=3.288316
i=64 t=0.001008 avg=0.425503 sd=3.262963
i=65 t=0.001008 avg=0.418972 sd=3.238187
i=66 t=0.001072 avg=0.412640 sd=3.213967
i=67 t=0.001005 avg=0.406497 sd=3.190283
i=68 t=0.001011 avg=0.400534 sd=3.167114
i=69 t=0.001071 avg=0.394744 sd=3.144443
i=70 t=0.001069 avg=0.389120 sd=3.122251
i=71 t=24.895405 avg=0.734279 sd=4.236812
i=72 t=0.001129 avg=0.724097 sd=4.208162
i=73 t=0.001089 avg=0.714192 sd=4.180084
i=74 t=0.000974 avg=0.704554 sd=4.152561
i=75 t=0.000951 avg=0.695173 sd=4.125574
i=76 t=0.001000 avg=0.686039 sd=4.099105
i=77 t=0.001072 avg=0.677143 sd=4.073139
i=78 t=0.001024 avg=0.668475 sd=4.047660
i=79 t=0.001055 avg=0.660027 sd=4.022652
i=80 t=0.000975 avg=0.651789 sd=3.998102
i=81 t=0.001015 avg=0.643755 sd=3.973996
i=82 t=0.000977 avg=0.635916 sd=3.950320
i=83 t=0.001027 avg=0.628267 sd=3.927061
i=84 t=0.001054 avg=0.620800 sd=3.904209
i=85 t=0.001000 avg=0.613508 sd=3.881750
i=86 t=0.001094 avg=0.606387 sd=3.859674
i=87 t=0.001020 avg=0.599429 sd=3.837971
i=88 t=0.001086 avg=0.592629 sd=3.816629
i=89 t=0.001114 avg=0.585983 sd=3.795638
i=90 t=0.001074 avg=0.579484 sd=3.774990
i=91 t=0.000985 avg=0.573127 sd=3.754676
i=92 t=0.000971 avg=0.566908 sd=3.734685
i=93 t=0.001021 avg=0.560823 sd=3.715011
i=94 t=0.001021 avg=0.554868 sd=3.695643
i=95 t=0.000995 avg=0.549037 sd=3.676576
i=96 t=0.001034 avg=0.543329 sd=3.657800
i=97 t=0.001039 avg=0.537738 sd=3.639309
i=98 t=20.103397 avg=0.737388 sd=4.120174
i=99 t=0.000990 avg=0.729950 sd=4.099974
i=100 t=0.001029 avg=0.722660 sd=4.080067
i=1 t=0.000820 avg=0.000820 sd=0.000000
i=2 t=0.774084 avg=0.387452 sd=0.386632
i=3 t=0.792938 avg=0.522614 sd=0.369044
i=4 t=0.907800 avg=0.618911 sd=0.360506
i=5 t=0.795508 avg=0.654230 sd=0.330093
i=6 t=0.783380 avg=0.675755 sd=0.305152
i=7 t=0.790429 avg=0.692137 sd=0.285351
i=8 t=0.802586 avg=0.705943 sd=0.269409
i=9 t=0.826896 avg=0.719382 sd=0.256830
i=10 t=0.822961 avg=0.729740 sd=0.245624
i=11 t=0.819907 avg=0.737937 sd=0.235623
i=12 t=0.790107 avg=0.742285 sd=0.226053
i=13 t=0.816345 avg=0.747982 sd=0.218079
i=14 t=0.853744 avg=0.755536 sd=0.211904
i=15 t=0.819683 avg=0.759813 sd=0.205343
i=16 t=0.809630 avg=0.762926 sd=0.199188
i=17 t=0.769262 avg=0.763299 sd=0.193247
i=18 t=0.879888 avg=0.769776 sd=0.189691
i=19 t=0.803801 avg=0.771567 sd=0.184788
i=20 t=0.786633 avg=0.772320 sd=0.180139
i=21 t=0.779612 avg=0.772667 sd=0.175805
i=22 t=0.793967 avg=0.773636 sd=0.171820
i=23 t=0.816003 avg=0.775478 sd=0.168265
i=24 t=0.813330 avg=0.777055 sd=0.164896
i=25 t=0.820129 avg=0.778778 sd=0.161785
i=26 t=0.783271 avg=0.778951 sd=0.158645
i=27 t=0.829406 avg=0.780819 sd=0.155971
i=28 t=0.776121 avg=0.780651 sd=0.153163
i=29 t=0.800186 avg=0.781325 sd=0.150541
i=30 t=0.793514 avg=0.781731 sd=0.148027
i=31 t=0.819878 avg=0.782962 sd=0.145776
i=32 t=0.817268 avg=0.784034 sd=0.143604
i=33 t=0.840328 avg=0.785740 sd=0.141741
i=34 t=0.799417 avg=0.786142 sd=0.139660
i=35 t=0.873016 avg=0.788624 sd=0.138409
i=36 t=0.776116 avg=0.788277 sd=0.136488
i=37 t=0.777642 avg=0.787989 sd=0.134642
i=38 t=0.859289 avg=0.789866 sd=0.133348
i=39 t=0.779787 avg=0.789607 sd=0.131637
i=40 t=0.836702 avg=0.790785 sd=0.130189
i=41 t=0.803369 avg=0.791092 sd=0.128606
i=42 t=0.865717 avg=0.792868 sd=0.127574
i=43 t=0.873360 avg=0.794740 sd=0.126665
i=44 t=0.846709 avg=0.795921 sd=0.125456
i=45 t=0.784006 avg=0.795657 sd=0.124067
i=46 t=0.863076 avg=0.797122 sd=0.123104
i=47 t=0.846512 avg=0.798173 sd=0.121996
i=48 t=0.776671 avg=0.797725 sd=0.120757
i=49 t=0.792962 avg=0.797628 sd=0.119521
i=50 t=0.763243 avg=0.796940 sd=0.118417
i=51 t=0.886666 avg=0.798700 sd=0.117909
i=52 t=0.849858 avg=0.799683 sd=0.116981
i=53 t=0.793324 avg=0.799563 sd=0.115875
i=54 t=0.773330 avg=0.799078 sd=0.114852
i=55 t=0.853225 avg=0.800062 sd=0.114032
i=56 t=0.816267 avg=0.800351 sd=0.113030
i=57 t=0.843519 avg=0.801109 sd=0.112177
i=58 t=0.743049 avg=0.800108 sd=0.111463
i=59 t=0.836431 avg=0.800723 sd=0.110614
i=60 t=0.836706 avg=0.801323 sd=0.109785
i=61 t=0.813397 avg=0.801521 sd=0.108892
i=62 t=0.809625 avg=0.801652 sd=0.108015
i=63 t=0.786564 avg=0.801412 sd=0.107171
i=64 t=0.873384 avg=0.802537 sd=0.106704
i=65 t=0.859650 avg=0.803415 sd=0.106113
i=66 t=0.850129 avg=0.804123 sd=0.105461
i=67 t=0.776811 avg=0.803716 sd=0.104723
i=68 t=0.819723 avg=0.803951 sd=0.103968
i=69 t=0.823256 avg=0.804231 sd=0.103238
i=70 t=0.836310 avg=0.804689 sd=0.102568
i=71 t=0.773164 avg=0.804245 sd=0.101911
i=72 t=0.756440 avg=0.803581 sd=0.101356
i=73 t=0.789608 avg=0.803390 sd=0.100672
i=74 t=0.760459 avg=0.802810 sd=0.100112
i=75 t=0.816467 avg=0.802992 sd=0.099455
i=76 t=0.859873 avg=0.803740 sd=0.099011
i=77 t=0.816676 avg=0.803908 sd=0.098377
i=78 t=0.773397 avg=0.803517 sd=0.097804
i=79 t=0.846435 avg=0.804060 sd=0.097302
i=80 t=0.759766 avg=0.803506 sd=0.096817
i=81 t=0.789801 avg=0.803337 sd=0.096229
i=82 t=0.803089 avg=0.803334 sd=0.095641
i=83 t=0.780487 avg=0.803059 sd=0.095096
i=84 t=0.862317 avg=0.803764 sd=0.094746
i=85 t=0.819791 avg=0.803953 sd=0.094203
i=86 t=0.829655 avg=0.804252 sd=0.093694
i=87 t=0.793452 avg=0.804128 sd=0.093161
i=88 t=0.789622 avg=0.803963 sd=0.092643
i=89 t=0.836759 avg=0.804331 sd=0.092186
i=90 t=0.860124 avg=0.804951 sd=0.091859
i=91 t=0.827322 avg=0.805197 sd=0.091382
i=92 t=0.906197 avg=0.806295 sd=0.091486
i=93 t=0.843038 avg=0.806690 sd=0.091072
i=94 t=0.790386 avg=0.806517 sd=0.090601
i=95 t=0.813045 avg=0.806585 sd=0.090126
i=96 t=0.753151 avg=0.806029 sd=0.089819
i=97 t=0.792651 avg=0.805891 sd=0.089365
i=98 t=0.804212 avg=0.805874 sd=0.088908
i=99 t=0.813284 avg=0.805949 sd=0.088461
i=100 t=0.843019 avg=0.806319 sd=0.088095
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment