-
Notifications
You must be signed in to change notification settings - Fork 29
/
event_handler_performance.txt
106 lines (63 loc) · 2.22 KB
/
event_handler_performance.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
performance data collected:
(this is for the tcs io board, with the restricted set of inputs/outputs
enabled: 40 outputs and about 15 inputs)
FOR COMPILATION WITH -Os
========================
processing 20 events of 0100..0104 (which have 8 matches in the registry)
~40 msec (37-40 msec)
for 100:
174 or 212 msec (there is probably a rounding problem here, freertos cannot really measure sub-millisecond time)
processing 20 events that have zero matches
~2 msec (0-3 msec)
for 100 irrelevant events: 4-10 msec
processing events with one match in the registry:
100-140 msec for 100 events.
FOR COMPILATION WITH -O3
========================
processing events with 8 match in the registry:
160-200 msec for 100 events.
processing events with one match in the registry:
100-125 msec for 100 events.
processing events with zero match in the registry:
1-12 msec for 100 events.
AFTER FIRST ROUND OF OPTIMIZATION
=================================
(eliminate eventhandlercall)
processing events with 8 match in the registry: (0100)
24-34 msec for 100 events.
processing events with one match in the registry:
12-20 msec for 100 events.
processing events with zero match in the registry:
2-8 msec for 100 events.
AFTER SECOND ROUND OF OPTIMIZATION
=================================
(add new version of barriernotify)
processing events with 8 match in the registry: (0100)
8-17 msec
processing events with one match in the registry:
6-15 msec for 100 events.
processing events with zero match in the registry:
2-8 msec for 100 events.
AFTER MEMORY OPTIMIZATION
=================================
(with new tree event handler implementation)
processing events with 8 match in the registry: (0100)
12-18 msec
processing events with one match in the registry:
7-16 msec for 100 events.
processing events with zero match in the registry:
2-10 msec for 100 events.
MEMORY SIZE TESTS
=================
heap_end with newlib nano:
0x62e8 (appl_main: 5ca4 pool: 376)
adding four new consumers:
0x6528 (appl_main: 5ee4 pool: 376)
delta:
576 (appl main: the same)
per consumer size: 144 bytes.
AFTER MEMORY OPTIMIZATION
0x612c (appl_main: 53a0 pool: 376)
adding four consumers:
0x622c (appl_main 54a0 pool: 376)
per consumer size: 64