Timing a loop
Call timespec_get(&t[0], TIME_UTC), run a loop, then call timespec_get(&t[1], TIME_UTC). The difference between the timestamps measures the interval containing that loop—not just its body. section 15.3
TAKEAWAY: Performance assessment requires measurement, but measurement introduces bias. A clock call takes time and can change compiler optimization, scheduling, or cache behavior. Assess that bias before interpreting a short interval; repeat the experiment and collect statistics rather than trusting one result. section 15.3
Listing 15.1. Measuring several code snippets repeatedly
53 timespec_get(&t[0], TIME_UTC);
54 /* Volatile for i ensures that the loop is effected */
55 for (uint64_t volatile i = 0; i < iterations; ++i) {
56 /* do nothing */
57 }
58 timespec_get(&t[1], TIME_UTC);
59 /* s must be volatile to ensure that the loop is effected */
60 for (uint64_t i = 0; i < iterations; ++i) {
61 s = i;
62 }
63 timespec_get(&t[2], TIME_UTC);
64 /* Opaque computation ensures that the loop is effected */
65 for (uint64_t i = 1; accu0 < upper; i += 2) {
66 accu0 += i;
67 }
68 timespec_get(&t[3], TIME_UTC);
69 /* A function call can usually not be optimized out. */
70 for (uint64_t i = 0; i < iterations; ++i) {
71 timespec_get(&tdummy, TIME_UTC);
72 accu1 += tdummy.tv_nsec;
73 }
74 timespec_get(&t[4], TIME_UTC);
75 /* A function call can usually not be optimized out, but
76 an inline function can. */
77 for (uint64_t i = 0; i < iterations; ++i) {
78 timespec_get(&tdummy, TIME_UTC);
79 stats_collect1(&sdummy[1], tdummy.tv_nsec);
80 }
81 timespec_get(&t[5], TIME_UTC);
82 for (uint64_t i = 0; i < iterations; ++i) {
83 timespec_get(&tdummy, TIME_UTC);
84 stats_collect2(&sdummy[2], tdummy.tv_nsec);
85 }
86 timespec_get(&t[6], TIME_UTC);
87 for (uint64_t i = 0; i < iterations; ++i) {
88 timespec_get(&tdummy, TIME_UTC);
89 stats_collect3(&sdummy[3], tdummy.tv_nsec);
90 }
91 timespec_get(&t[7], TIME_UTC);
!@%STYLE%@!
{"css":"{\"css\": \"font-weight: bold;\"}","target":"[[{\"line\":0,\"ch\":0},{\"line\":0,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":1,\"ch\":0},{\"line\":1,\"ch\":2}],[{\"line\":2,\"ch\":0},{\"line\":2,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":2,\"ch\":22},{\"line\":2,\"ch\":30}],[{\"line\":6,\"ch\":21},{\"line\":6,\"ch\":29}],[{\"line\":3,\"ch\":0},{\"line\":3,\"ch\":2}],[{\"line\":4,\"ch\":0},{\"line\":4,\"ch\":2}],[{\"line\":5,\"ch\":0},{\"line\":5,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":6,\"ch\":0},{\"line\":6,\"ch\":2}],[{\"line\":7,\"ch\":0},{\"line\":7,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":8,\"ch\":0},{\"line\":8,\"ch\":2}],[{\"line\":9,\"ch\":0},{\"line\":9,\"ch\":2}],[{\"line\":10,\"ch\":0},{\"line\":10,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":2,\"ch\":17},{\"line\":2,\"ch\":19}],[{\"line\":7,\"ch\":17},{\"line\":7,\"ch\":19}],[{\"line\":11,\"ch\":0},{\"line\":11,\"ch\":2}],[{\"line\":12,\"ch\":17},{\"line\":12,\"ch\":19}],[{\"line\":17,\"ch\":17},{\"line\":17,\"ch\":19}],[{\"line\":24,\"ch\":17},{\"line\":24,\"ch\":19}],[{\"line\":29,\"ch\":17},{\"line\":29,\"ch\":19}],[{\"line\":34,\"ch\":17},{\"line\":34,\"ch\":19}],[{\"line\":12,\"ch\":0},{\"line\":12,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":13,\"ch\":0},{\"line\":13,\"ch\":2}],[{\"line\":14,\"ch\":0},{\"line\":14,\"ch\":2}],[{\"line\":15,\"ch\":0},{\"line\":15,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":16,\"ch\":0},{\"line\":16,\"ch\":2}],[{\"line\":17,\"ch\":0},{\"line\":17,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":18,\"ch\":0},{\"line\":18,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":19,\"ch\":0},{\"line\":19,\"ch\":2}],[{\"line\":19,\"ch\":26},{\"line\":19,\"ch\":33}],[{\"line\":26,\"ch\":44},{\"line\":26,\"ch\":51}],[{\"line\":31,\"ch\":44},{\"line\":31,\"ch\":51}],[{\"line\":36,\"ch\":44},{\"line\":36,\"ch\":51}],[{\"line\":20,\"ch\":0},{\"line\":20,\"ch\":2}],[{\"line\":21,\"ch\":0},{\"line\":21,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":22,\"ch\":0},{\"line\":22,\"ch\":2}],[{\"line\":23,\"ch\":0},{\"line\":23,\"ch\":2}],[{\"line\":24,\"ch\":0},{\"line\":24,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":25,\"ch\":0},{\"line\":25,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":26,\"ch\":0},{\"line\":26,\"ch\":2}],[{\"line\":19,\"ch\":26},{\"line\":19,\"ch\":33}],[{\"line\":26,\"ch\":44},{\"line\":26,\"ch\":51}],[{\"line\":31,\"ch\":44},{\"line\":31,\"ch\":51}],[{\"line\":36,\"ch\":44},{\"line\":36,\"ch\":51}],[{\"line\":27,\"ch\":0},{\"line\":27,\"ch\":2}],[{\"line\":28,\"ch\":0},{\"line\":28,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":29,\"ch\":0},{\"line\":29,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":30,\"ch\":0},{\"line\":30,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":31,\"ch\":0},{\"line\":31,\"ch\":2}],[{\"line\":19,\"ch\":26},{\"line\":19,\"ch\":33}],[{\"line\":26,\"ch\":44},{\"line\":26,\"ch\":51}],[{\"line\":31,\"ch\":44},{\"line\":31,\"ch\":51}],[{\"line\":36,\"ch\":44},{\"line\":36,\"ch\":51}],[{\"line\":32,\"ch\":0},{\"line\":32,\"ch\":2}],[{\"line\":33,\"ch\":0},{\"line\":33,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":34,\"ch\":0},{\"line\":34,\"ch\":2}],[{\"line\":1,\"ch\":20},{\"line\":1,\"ch\":23}],[{\"line\":2,\"ch\":8},{\"line\":2,\"ch\":11}],[{\"line\":7,\"ch\":8},{\"line\":7,\"ch\":11}],[{\"line\":12,\"ch\":8},{\"line\":12,\"ch\":11}],[{\"line\":17,\"ch\":8},{\"line\":17,\"ch\":11}],[{\"line\":24,\"ch\":8},{\"line\":24,\"ch\":11}],[{\"line\":29,\"ch\":8},{\"line\":29,\"ch\":11}],[{\"line\":34,\"ch\":8},{\"line\":34,\"ch\":11}],[{\"line\":2,\"ch\":13},{\"line\":2,\"ch\":21}],[{\"line\":7,\"ch\":13},{\"line\":7,\"ch\":21}],[{\"line\":12,\"ch\":13},{\"line\":12,\"ch\":21}],[{\"line\":17,\"ch\":13},{\"line\":17,\"ch\":21}],[{\"line\":24,\"ch\":13},{\"line\":24,\"ch\":21}],[{\"line\":29,\"ch\":13},{\"line\":29,\"ch\":21}],[{\"line\":34,\"ch\":13},{\"line\":34,\"ch\":21}],[{\"line\":35,\"ch\":0},{\"line\":35,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}],[{\"line\":36,\"ch\":0},{\"line\":36,\"ch\":2}],[{\"line\":19,\"ch\":26},{\"line\":19,\"ch\":33}],[{\"line\":26,\"ch\":44},{\"line\":26,\"ch\":51}],[{\"line\":31,\"ch\":44},{\"line\":31,\"ch\":51}],[{\"line\":36,\"ch\":44},{\"line\":36,\"ch\":51}],[{\"line\":37,\"ch\":0},{\"line\":37,\"ch\":2}],[{\"line\":38,\"ch\":0},{\"line\":38,\"ch\":2}],[{\"line\":0,\"ch\":8},{\"line\":0,\"ch\":20}],[{\"line\":5,\"ch\":8},{\"line\":5,\"ch\":20}],[{\"line\":10,\"ch\":8},{\"line\":10,\"ch\":20}],[{\"line\":15,\"ch\":8},{\"line\":15,\"ch\":20}],[{\"line\":18,\"ch\":10},{\"line\":18,\"ch\":22}],[{\"line\":21,\"ch\":8},{\"line\":21,\"ch\":20}],[{\"line\":25,\"ch\":10},{\"line\":25,\"ch\":22}],[{\"line\":28,\"ch\":8},{\"line\":28,\"ch\":20}],[{\"line\":30,\"ch\":10},{\"line\":30,\"ch\":22}],[{\"line\":33,\"ch\":8},{\"line\":33,\"ch\":20}],[{\"line\":35,\"ch\":10},{\"line\":35,\"ch\":22}],[{\"line\":38,\"ch\":8},{\"line\":38,\"ch\":20}],[{\"line\":0,\"ch\":28},{\"line\":0,\"ch\":36}],[{\"line\":5,\"ch\":28},{\"line\":5,\"ch\":36}],[{\"line\":10,\"ch\":28},{\"line\":10,\"ch\":36}],[{\"line\":15,\"ch\":28},{\"line\":15,\"ch\":36}],[{\"line\":18,\"ch\":32},{\"line\":18,\"ch\":40}],[{\"line\":21,\"ch\":28},{\"line\":21,\"ch\":36}],[{\"line\":25,\"ch\":32},{\"line\":25,\"ch\":40}],[{\"line\":28,\"ch\":28},{\"line\":28,\"ch\":36}],[{\"line\":30,\"ch\":32},{\"line\":30,\"ch\":40}],[{\"line\":33,\"ch\":28},{\"line\":33,\"ch\":36}],[{\"line\":35,\"ch\":32},{\"line\":35,\"ch\":40}],[{\"line\":38,\"ch\":28},{\"line\":38,\"ch\":36}]]"}
!@%STYLE%@!
Compare the timed loops: volatile values and an opaque computation help ensure that the intended work is actually performed; a clock call inside a loop has its own cost. section 15.3
