View difference between Paste ID: VsNnQrr5 and DQqtG4w6
SHOW: | | - or go back to the newest paste.
1
gcc 4.6.3
2
gtest 1.6.0
3
Intel(R) Pentium(R) Dual  CPU  T3400  @ 2.16GHz
4
5
отладочная сборка (-g):
6
7
[==========] Running 4 tests from 1 test case.
8
[----------] Global test environment set-up.
9
[----------] 4 tests from VectorIteratorSpeedTest
10
[ RUN      ] VectorIteratorSpeedTest.calibrationTest
11
[       OK ] VectorIteratorSpeedTest.calibrationTest (176 ms)
12
[ RUN      ] VectorIteratorSpeedTest.indexTest
13
[       OK ] VectorIteratorSpeedTest.indexTest (268 ms)
14
[ RUN      ] VectorIteratorSpeedTest.iteratorTest
15
[       OK ] VectorIteratorSpeedTest.iteratorTest (474 ms)
16
[ RUN      ] VectorIteratorSpeedTest.indexAtTest
17
[       OK ] VectorIteratorSpeedTest.indexAtTest (517 ms)
18
[----------] 4 tests from VectorIteratorSpeedTest (1437 ms total)
19
20
[----------] Global test environment tear-down
21
[==========] 4 tests from 1 test case ran. (1437 ms total)
22
[  PASSED  ] 4 tests.
23
24
Рекордсмен, конечно, доступ по индексу без проверки выхода за границы вектора. Относительно него доступ через итератор медленнее в 3.3 раза, по индексу с проверкой выхода за границу - в 3.7 раза (с учетом времени выполнения калибровочного теста)
25
26
релизная сборка (-O2):
27
28
[==========] Running 4 tests from 1 test case.
29
[----------] Global test environment set-up.
30
[----------] 4 tests from VectorIteratorSpeedTest
31
[ RUN      ] VectorIteratorSpeedTest.calibrationTest
32
[       OK ] VectorIteratorSpeedTest.calibrationTest (99 ms)
33
[ RUN      ] VectorIteratorSpeedTest.indexTest
34
[       OK ] VectorIteratorSpeedTest.indexTest (161 ms)
35
[ RUN      ] VectorIteratorSpeedTest.iteratorTest
36
[       OK ] VectorIteratorSpeedTest.iteratorTest (162 ms)
37
[ RUN      ] VectorIteratorSpeedTest.indexAtTest
38
[       OK ] VectorIteratorSpeedTest.indexAtTest (172 ms)
39
[----------] 4 tests from VectorIteratorSpeedTest (594 ms total)
40
41
[----------] Global test environment tear-down
42
[==========] 4 tests from 1 test case ran. (594 ms total)
43
[  PASSED  ] 4 tests.
44
45-
Затраты на доступ по индексу и через итератор сравнялись. Версия с проверкой выхода за границы ветора медленнее в 1.2 раза (с учетом времени выполнения калибровочного теста). Время на доступ по индексу за счет оптимизаций уменьшилось в 1.5 раза, по итератору и по индексу с проверкой выхода за границы вектора - в 4.7 раза.
45+
Затраты на доступ по индексу и через итератор сравнялись. Версия с проверкой выхода за границы ветора медленнее в 1.2 раза (с учетом времени выполнения калибровочного теста). Время на доступ по индексу за счет оптимизаций уменьшилось в 1.5 раза, по итератору и по индексу с проверкой выхода за границы вектора - в 4.7 раза (с учетом времени выполнения калибровочного теста).