📄 real-time-characterization.sgml
字号:
<!-- {{{ Banner -->
<!-- =============================================================== -->
<!-- -->
<!-- config-tool.sgml -->
<!-- -->
<!-- eCos User Guide -->
<!-- -->
<!-- =============================================================== -->
<!-- ####COPYRIGHTBEGIN#### -->
<!-- -->
<!-- =============================================================== -->
<!-- Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc. -->
<!-- This material may be distributed only subject to the terms -->
<!-- and conditions set forth in the Open Publication License, v1.0 -->
<!-- or later (the latest version is presently available at -->
<!-- http://www.opencontent.org/openpub/) -->
<!-- Distribution of the work or derivative of the work in any -->
<!-- standard (paper) book form is prohibited unless prior -->
<!-- permission obtained from the copyright holder -->
<!-- =============================================================== -->
<!-- -->
<!-- ####COPYRIGHTEND#### -->
<!-- =============================================================== -->
<!-- #####DESCRIPTIONBEGIN#### -->
<!-- -->
<!-- ####DESCRIPTIONEND#### -->
<!-- =============================================================== -->
<!-- }}} -->
<APPENDIX ID="REAL-TIME-CHARACTERIZATION">
<TITLE>Real-time characterization</TITLE>
<PARA>For a discussion of real-time performance measurement for eCos, see the
kernel documentation in the eCos Reference Manual.
</PARA>
<caution>
<para>
As with the target setup descriptions in the previous appendix, this
information will eventually be merged into per-target documents.
</para>
</caution>
<PARA> Sample numbers:
</PARA>
<!-- ==================================================== -->
<SECT1 id="rt-arm-aeb1">
<TITLE>Board: ARM AEB-1 Revision B Evaluation Board</TITLE>
<LITERALLAYOUT CLASS="MONOSPACED">
Board: ARM AEB-1 Revision B Evaluation Board
CPU : Sharp LH77790A 24MHz
Startup, main stack : stack used 404 size 2400
Startup : Interrupt stack used 128 size 2048
Startup : Idlethread stack used 80 size 2048
eCos Kernel Timings
Notes: all times are in microseconds (.000001) unless otherwise stated
Reading the hardware clock takes 13 'ticks' overhead
... this value will be factored out of all other measurements
Clock interrupt took 193.49 microseconds (290 raw clock ticks)
Testing parameters:
Clock samples: 32
Threads: 7
Thread switches: 128
Mutexes: 32
Mailboxes: 32
Semaphores: 32
Scheduler operations: 128
Counters: 32
Alarms: 32
Confidence
Ave Min Max Var Ave Min Function
====== ====== ====== ====== ========== ========
110.19 104.67 116.00 3.26 42% 28% Create thread
34.00 34.00 34.00 0.00 100% 100% Yield thread [all suspended]
24.67 24.67 24.67 0.00 100% 100% Suspend [suspended] thread
25.05 24.67 25.33 0.33 57% 42% Resume thread
37.14 36.67 37.33 0.27 71% 28% Set priority
3.81 3.33 4.00 0.27 71% 28% Get priority
80.00 80.00 80.00 0.00 100% 100% Kill [suspended] thread
33.90 33.33 34.00 0.16 85% 14% Yield [no other] thread
45.90 44.00 46.67 0.54 57% 14% Resume [suspended low prio] thread
24.57 24.00 24.67 0.16 85% 14% Resume [runnable low prio] thread
42.29 36.67 43.33 1.61 85% 14% Suspend [runnable] thread
33.90 33.33 34.00 0.16 85% 14% Yield [only low prio] thread
24.67 24.67 24.67 0.00 100% 100% Suspend [runnable->not runnable]
80.00 80.00 80.00 0.00 100% 100% Kill [runnable] thread
43.33 43.33 43.33 0.00 100% 100% Destroy [dead] thread
106.29 101.33 107.33 1.41 85% 14% Destroy [runnable] thread
144.95 141.33 166.00 6.01 85% 85% Resume [high priority] thread
78.31 76.67 254.67 2.75 99% 99% Thread switch
4.00 4.00 4.00 0.00 100% 100% Scheduler lock
16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [0 threads]
16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [1 suspended]
16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [many suspended]
16.37 16.00 16.67 0.33 56% 43% Scheduler unlock [many low prio]
10.67 10.67 10.67 0.00 100% 100% Init mutex
28.67 28.67 28.67 0.00 100% 100% Lock [unlocked] mutex
30.44 30.00 31.33 0.33 59% 37% Unlock [locked] mutex
25.42 25.33 26.00 0.15 87% 87% Trylock [unlocked] mutex
22.50 22.00 22.67 0.25 75% 25% Trylock [locked] mutex
5.75 5.33 6.00 0.31 62% 37% Destroy mutex
185.33 185.33 185.33 0.00 100% 100% Unlock/Lock mutex
20.17 20.00 20.67 0.25 75% 75% Create mbox
2.92 2.67 3.33 0.31 62% 62% Peek [empty] mbox
32.42 32.00 32.67 0.31 62% 37% Put [first] mbox
3.00 2.67 3.33 0.33 100% 50% Peek [1 msg] mbox
32.50 32.00 32.67 0.25 75% 25% Put [second] mbox
2.92 2.67 3.33 0.31 62% 62% Peek [2 msgs] mbox
32.83 32.67 33.33 0.25 75% 75% Get [first] mbox
32.67 32.67 32.67 0.00 100% 100% Get [second] mbox
31.33 31.33 31.33 0.00 100% 100% Tryput [first] mbox
27.58 27.33 28.00 0.31 62% 62% Peek item [non-empty] mbox
32.83 32.67 33.33 0.25 75% 75% Tryget [non-empty] mbox
26.50 26.00 26.67 0.25 75% 25% Peek item [empty] mbox
28.00 28.00 28.00 0.00 100% 100% Tryget [empty] mbox
3.25 2.67 3.33 0.15 87% 12% Waiting to get mbox
3.25 2.67 3.33 0.15 87% 12% Waiting to put mbox
30.83 30.67 31.33 0.25 75% 75% Delete mbox
101.08 100.67 101.33 0.31 62% 37% Put/Get mbox
11.17 10.67 11.33 0.25 75% 25% Init semaphore
24.17 24.00 24.67 0.25 75% 75% Post [0] semaphore
27.08 26.67 27.33 0.31 62% 37% Wait [1] semaphore
22.75 22.67 23.33 0.15 87% 87% Trywait [0] semaphore
22.21 22.00 22.67 0.29 68% 68% Trywait [1] semaphore
7.33 7.33 7.33 0.00 100% 100% Peek semaphore
5.92 5.33 6.00 0.15 87% 12% Destroy semaphore
110.04 110.00 110.67 0.08 93% 93% Post/Wait semaphore
9.54 9.33 10.00 0.29 68% 68% Create counter
3.92 3.33 4.00 0.15 87% 12% Get counter value
4.00 4.00 4.00 0.00 100% 100% Set counter value
30.92 30.67 31.33 0.31 62% 62% Tick counter
5.75 5.33 6.00 0.31 62% 37% Delete counter
13.83 13.33 14.00 0.25 75% 25% Create alarm
46.67 46.67 46.67 0.00 100% 100% Initialize alarm
3.67 3.33 4.00 0.33 100% 50% Disable alarm
45.67 45.33 46.00 0.33 100% 50% Enable alarm
8.33 8.00 8.67 0.33 100% 50% Delete alarm
36.33 36.00 36.67 0.33 100% 50% Tick counter [1 alarm]
214.67 214.67 214.67 0.00 100% 100% Tick counter [many alarms]
62.67 62.67 62.67 0.00 100% 100% Tick & fire counter [1 alarm]
1087.04 1075.33 1278.67 21.91 93% 93% Tick & fire counters [>1 together]
246.35 240.67 412.00 10.35 96% 96% Tick & fire counters [>1 separately]
168.01 167.33 237.33 1.08 99% 99% Alarm latency [0 threads]
187.36 168.00 234.67 3.60 86% 1% Alarm latency [2 threads]
187.37 167.33 235.33 3.59 85% 1% Alarm latency [many threads]
303.12 280.00 508.67 3.21 98% 0% Alarm -> thread resume latency
36.65 36.00 38.67 0.00 Clock/interrupt latency
65.79 52.00 152.67 0.00 Clock DSR latency
316 316 316 (main stack: 752) Thread stack used (1120 total)
All done, main stack : stack used 752 size 2400
All done : Interrupt stack used 280 size 2048
All done : Idlethread stack used 268 size 2048
Timing complete - 30390 ms total
PASS:<Basic timing OK>
EXIT:<done>
</LITERALLAYOUT>
</SECT1>
<!-- ==================================================== -->
<SECT1 id="rt-at91-eb40">
<TITLE>Board: Atmel AT91/EB40</TITLE>
<LITERALLAYOUT CLASS="MONOSPACED">
Board: Atmel AT91/EB40
CPU : AT91R40807 (ARM7TDMI core), 32MHz
512KB RAM, 64K Flash
Startup, main stack : stack used 420 size 2400
Startup : Interrupt stack used 144 size 4096
Startup : Idlethread stack used 84 size 2048
eCos Kernel Timings
Notes: all times are in microseconds (.000001) unless otherwise stated
Reading the hardware clock takes 3 'ticks' overhead
... this value will be factored out of all other measurements
Clock interrupt took 127.53 microseconds (130 raw clock ticks)
Testing parameters:
Clock samples: 32
Threads: 25
Thread switches: 128
Mutexes: 32
Mailboxes: 32
Semaphores: 32
Scheduler operations: 128
Counters: 32
Alarms: 32
Confidence
Ave Min Max Var Ave Min Function
====== ====== ====== ====== ========== ========
86.48 71.29 101.56 7.99 48% 28% Create thread
20.70 20.51 21.48 0.31 80% 80% Yield thread [all suspended]
17.15 16.60 17.58 0.48 56% 44% Suspend [suspended] thread
17.07 16.60 17.58 0.49 52% 52% Resume thread
25.51 25.39 26.37 0.21 88% 88% Set priority
3.16 2.93 3.91 0.36 76% 76% Get priority
52.34 51.76 52.73 0.47 60% 40% Kill [suspended] thread
20.70 20.51 21.48 0.31 80% 80% Yield [no other] thread
28.98 28.32 30.27 0.48 60% 36% Resume [suspended low prio] thread
17.11 16.60 17.58 0.49 52% 48% Resume [runnable low prio] thread
27.85 26.37 28.32 0.52 96% 4% Suspend [runnable] thread
20.70 20.51 21.48 0.31 80% 80% Yield [only low prio] thread
17.23 16.60 17.58 0.45 64% 36% Suspend [runnable->not runnable]
52.34 51.76 52.73 0.47 60% 40% Kill [runnable] thread
33.01 32.23 33.20 0.31 80% 20% Destroy [dead] thread
72.03 70.31 72.27 0.38 80% 4% Destroy [runnable] thread
96.99 95.70 112.30 1.22 64% 96% Resume [high priority] thread
51.48 49.80 164.06 1.76 99% 99% Thread switch
2.78 1.95 2.93 0.26 84% 15% Scheduler lock
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [0 threads]
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [1 suspended]
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many suspended]
11.81 11.72 12.70 0.17 90% 90% Scheduler unlock [many low prio]
5.49 4.88 5.86 0.46 62% 37% Init mutex
20.20 19.53 20.51 0.42 68% 31% Lock [unlocked] mutex
24.44 24.41 25.39 0.06 96% 96% Unlock [locked] mutex
18.25 17.58 18.55 0.42 68% 31% Trylock [unlocked] mutex
16.11 15.63 16.60 0.49 100% 50% Trylock [locked] mutex
6.10 5.86 6.84 0.37 75% 75% Destroy mutex
124.21 124.02 125.00 0.30 81% 81% Unlock/Lock mutex
9.28 8.79 9.77 0.49 100% 50% Create mbox
2.93 2.93 2.93 0.00 100% 100% Peek [empty] mbox
22.58 22.46 23.44 0.21 87% 87% Put [first] mbox
2.44 1.95 2.93 0.49 100% 50% Peek [1 msg] mbox
22.58 22.46 23.44 0.21 87% 87% Put [second] mbox
2.44 1.95 2.93 0.49 100% 50% Peek [2 msgs] mbox
22.71 22.46 23.44 0.37 75% 75% Get [first] mbox
22.71 22.46 23.44 0.37 75% 75% Get [second] mbox
21.18 20.51 21.48 0.42 68% 31% Tryput [first] mbox
18.98 18.55 19.53 0.48 56% 56% Peek item [non-empty] mbox
22.46 22.46 22.46 0.00 100% 100% Tryget [non-empty] mbox
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -