qtconcurrentiteratekernel.cpp

Switch to Source codePreprocessed file
LineSource CodeCoverage
1 -
2 -
3 -
4 -
5 -
6 -
7enum { -
8 TargetRatio = 100, -
9 MedianSize = 7 -
10}; -
11static qint64 getticks() -
12{ -
13 -
14 clockid_t clockId; -
15 -
16 -
17 -
18 -
19 -
20 clockId = 0; -
21 -
22 -
23 -
24 static long useThreadCpuTime = -2; -
25 if (useThreadCpuTime == -2) {
evaluated: useThreadCpuTime == -2
TRUEFALSE
yes
Evaluation Count:9
yes
Evaluation Count:155875
9-155875
26 -
27 useThreadCpuTime = sysconf(_SC_THREAD_CPUTIME); -
28 }
executed: }
Execution Count:8
8
29 if (useThreadCpuTime != -1)
partially evaluated: useThreadCpuTime != -1
TRUEFALSE
yes
Evaluation Count:156255
no
Evaluation Count:0
0-156255
30 clockId = 3;
executed: clockId = 3;
Execution Count:156693
156693
31 -
32 -
33 -
34 -
35 -
36 struct timespec ts; -
37 if (clock_gettime(clockId, &ts) == -1)
partially evaluated: clock_gettime(clockId, &ts) == -1
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:158669
0-158669
38 return 0;
never executed: return 0;
0
39 return (ts.tv_sec * 1000000000) + ts.tv_nsec;
executed: return (ts.tv_sec * 1000000000) + ts.tv_nsec;
Execution Count:157361
157361
40 -
41 -
42 -
43 -
44 -
45 -
46 -
47} -
48static double elapsed(qint64 after, qint64 before) -
49{ -
50 return double(after - before);
executed: return double(after - before);
Execution Count:158515
158515
51} -
52 -
53namespace QtConcurrent { -
54 -
55 -
56 -
57 -
58BlockSizeManager::BlockSizeManager(int iterationCount) -
59: maxBlockSize(iterationCount / (QThreadPool::globalInstance()->maxThreadCount() * 2)), -
60 beforeUser(0), afterUser(0), -
61 controlPartElapsed(MedianSize), userPartElapsed(MedianSize), -
62 m_blockSize(1) -
63{ }
executed: }
Execution Count:25856
25856
64 -
65 -
66void BlockSizeManager::timeBeforeUser() -
67{ -
68 if (blockSizeMaxed())
evaluated: blockSizeMaxed()
TRUEFALSE
yes
Evaluation Count:991
yes
Evaluation Count:80242
991-80242
69 return;
executed: return;
Execution Count:991
991
70 -
71 beforeUser = getticks(); -
72 controlPartElapsed.addValue(elapsed(beforeUser, afterUser)); -
73}
executed: }
Execution Count:80713
80713
74 -
75 -
76 -
77void BlockSizeManager::timeAfterUser() -
78{ -
79 if (blockSizeMaxed())
evaluated: blockSizeMaxed()
TRUEFALSE
yes
Evaluation Count:994
yes
Evaluation Count:80409
994-80409
80 return;
executed: return;
Execution Count:992
992
81 -
82 afterUser = getticks(); -
83 userPartElapsed.addValue(elapsed(afterUser, beforeUser)); -
84 -
85 if (controlPartElapsed.isMedianValid() == false)
evaluated: controlPartElapsed.isMedianValid() == false
TRUEFALSE
yes
Evaluation Count:70006
yes
Evaluation Count:10400
10400-70006
86 return;
executed: return;
Execution Count:69871
69871
87 -
88 if (controlPartElapsed.median() * TargetRatio < userPartElapsed.median())
partially evaluated: controlPartElapsed.median() * TargetRatio < userPartElapsed.median()
TRUEFALSE
no
Evaluation Count:0
yes
Evaluation Count:10417
0-10417
89 return;
never executed: return;
0
90 -
91 m_blockSize = qMin(m_blockSize * 2, maxBlockSize); -
92 -
93 -
94 -
95 -
96 -
97 -
98 -
99 controlPartElapsed.reset(); -
100 userPartElapsed.reset(); -
101}
executed: }
Execution Count:10402
10402
102 -
103int BlockSizeManager::blockSize() -
104{ -
105 return m_blockSize;
executed: return m_blockSize;
Execution Count:105920
105920
106} -
107 -
108} -
109 -
110 -
111 -
Switch to Source codePreprocessed file

Generated by Squish Coco Non-Commercial