Projet agregation v2 » Historique » Version 4
Laurent GUERBY, 03/03/2012 09:34
1 | 1 | Laurent GUERBY | h1. Projet agregation v2 |
---|---|---|---|
2 | 1 | Laurent GUERBY | |
3 | 1 | Laurent GUERBY | [[Projet agregation]] |
4 | 1 | Laurent GUERBY | |
5 | 1 | Laurent GUERBY | h2. Divers |
6 | 1 | Laurent GUERBY | |
7 | 1 | Laurent GUERBY | * 1 Mbit/s = 83 frames de 1500 byte/sec = 1 frame de 1500 byte toutes les 12 ms |
8 | 1 | Laurent GUERBY | * l'augmentation de latence sur la ligne permet la detection de la saturation des buffer |
9 | 1 | Laurent GUERBY | * on peut mesurer les variations de latence en regardant les variations de difference de timestamp destination moins source |
10 | 2 | Laurent GUERBY | |
11 | 4 | Laurent GUERBY | h3. Resolution de time.time() |
12 | 1 | Laurent GUERBY | |
13 | 4 | Laurent GUERBY | * http://stackoverflow.com/questions/1938048/high-precision-clock-in-python |
14 | 2 | Laurent GUERBY | |
15 | 4 | Laurent GUERBY | <pre> |
16 | 2 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ cat ttime.py |
17 | 2 | Laurent GUERBY | import time |
18 | 2 | Laurent GUERBY | |
19 | 2 | Laurent GUERBY | N=1000 |
20 | 2 | Laurent GUERBY | l=[] |
21 | 2 | Laurent GUERBY | for i in xrange(N): |
22 | 2 | Laurent GUERBY | t1=time.time() |
23 | 2 | Laurent GUERBY | t2=time.time() |
24 | 2 | Laurent GUERBY | dt=t2-t1 |
25 | 2 | Laurent GUERBY | l.append(dt) |
26 | 2 | Laurent GUERBY | |
27 | 2 | Laurent GUERBY | l.sort() |
28 | 2 | Laurent GUERBY | print l[0],l[-1],l[N/2],l[9*N/10] |
29 | 2 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ python ttime.py |
30 | 2 | Laurent GUERBY | 9.53674316406e-07 3.00407409668e-05 1.90734863281e-06 2.14576721191e-06 |
31 | 2 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ python ttime.py |
32 | 2 | Laurent GUERBY | 9.53674316406e-07 1.19209289551e-05 1.90734863281e-06 2.14576721191e-06 |
33 | 2 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ python ttime.py |
34 | 2 | Laurent GUERBY | 9.53674316406e-07 0.000508069992065 1.90734863281e-06 2.14576721191e-06 |
35 | 2 | Laurent GUERBY | </pre> |
36 | 2 | Laurent GUERBY | |
37 | 2 | Laurent GUERBY | => autour de 2 microsecondes en pratique |
38 | 3 | Laurent GUERBY | |
39 | 4 | Laurent GUERBY | h3. Résolution de select en python |
40 | 3 | Laurent GUERBY | |
41 | 4 | Laurent GUERBY | <pre> |
42 | 3 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ cat tselect.py |
43 | 3 | Laurent GUERBY | import time |
44 | 3 | Laurent GUERBY | import select |
45 | 3 | Laurent GUERBY | from socket import * |
46 | 3 | Laurent GUERBY | from select import select |
47 | 3 | Laurent GUERBY | |
48 | 3 | Laurent GUERBY | |
49 | 3 | Laurent GUERBY | |
50 | 3 | Laurent GUERBY | s1 = socket(AF_INET, SOCK_DGRAM) |
51 | 3 | Laurent GUERBY | s2 = socket(AF_INET, SOCK_DGRAM) |
52 | 3 | Laurent GUERBY | |
53 | 3 | Laurent GUERBY | N=1000 |
54 | 3 | Laurent GUERBY | l=[] |
55 | 3 | Laurent GUERBY | for i in xrange(N): |
56 | 3 | Laurent GUERBY | t1=time.time() |
57 | 3 | Laurent GUERBY | r = select([s1,s2],[],[],1.0e-9) |
58 | 3 | Laurent GUERBY | t2=time.time() |
59 | 3 | Laurent GUERBY | dt=t2-t1 |
60 | 3 | Laurent GUERBY | l.append(dt) |
61 | 3 | Laurent GUERBY | |
62 | 3 | Laurent GUERBY | l.sort() |
63 | 1 | Laurent GUERBY | print l[0],l[-1],l[N/2],l[9*N/10] |
64 | 3 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ python tselect.py |
65 | 3 | Laurent GUERBY | 9.77516174316e-06 0.000253915786743 1.09672546387e-05 1.12056732178e-05 |
66 | 3 | Laurent GUERBY | guerby@pc2:~/work/tetaneutral.net/python/pa2$ python tselect.py |
67 | 3 | Laurent GUERBY | 9.77516174316e-06 5.41210174561e-05 1.09672546387e-05 1.12056732178e-05 |
68 | 4 | Laurent GUERBY | </pre> |
69 | 3 | Laurent GUERBY | |
70 | 3 | Laurent GUERBY | => 12 microsecondes |