
Sergey
27.02.2017
10:38:01

Igor
27.02.2017
10:38:03
неиспользуемые переменные вроде

Daniil
27.02.2017
10:38:19
Чтобы небыло анъюзед вариаэбл или чото такое

Viktor
27.02.2017
10:38:37
хм, спасибо!

Google

Igor
27.02.2017
10:38:44
тогда уже и path так сделать)

Tema
27.02.2017
10:38:57
на костыль похоже

Daniil
27.02.2017
10:39:14
Приведи пример

Igor
27.02.2017
10:39:32
ну входной параметр закомментить

Tema
27.02.2017
10:39:48
func(int /* a */, int b)

Daniil
27.02.2017
10:39:48
И сломать апи?)

Viktor
27.02.2017
10:40:02
> @vecherinsky
сделать)
да код не мой, читаю тутор по fuse

Daniil
27.02.2017
10:40:02
А типо так. Прокатывает?

Stanislav
27.02.2017
10:40:03

Tema
27.02.2017
10:40:03
нет
просто имени нет

Google

Tema
27.02.2017
10:40:15
дада

Daniil
27.02.2017
10:40:21
Класс, не знал

Igor
27.02.2017
10:40:22
а, ну если не самописная функция то да...

Aleksei
27.02.2017
10:40:35

Tema
27.02.2017
10:40:38
это лучше чем бестолковые приведения типов, и Qunused

Daniil
27.02.2017
10:40:46

Igor
27.02.2017
10:40:58

Stanislav
27.02.2017
10:41:03

Tema
27.02.2017
10:41:38


Mikhail
27.02.2017
10:48:25
В общем. И вектор, и список лежат в памяти. Вектор — последовательно, а лист — не всегда, у каждой вершинки есть указатель на следующую и он может указывать на другой участок памяти
Просто когда процессор хочет посчитать, например, ту же сумму чисел в кеш отправляется целый кешлайн, например, 64 байта. Он берет первую чиселку, кладет в аккумулятор. Идет за второй, а она такая — оп, тоже есть в кешлайне, за ней не надо идти в оперативную память по медленной шине. Таким образом в кешлайне лежит, например, сразу восемь чиселок, которые надо добавить к аккумулятору.
Если лист лежит в памяти последовательно, то процесс, по идее, должен быть таким же. А если элементы как-то неоднородно в памяти лежат, за ними приходится ходить в память (опять-таки, шина в оперативную память очень медленная и читать оттуда очень дорого по сравнению с чтением из кэша)
Ну так согласно этому объяснению лист равен или медленнее чем вектор, но никак не быстрее

Sergey
27.02.2017
10:49:10

Mikhail
27.02.2017
10:50:11

Monday Begins on Saturday
27.02.2017
10:51:25
Мне бы понять почему у меня быстрее
в дебаге. Это же такая интрига
Может дело в компиляторе? gcc 5.3.0

Mikhail
27.02.2017
10:54:16
Ну понятно что дело в компиляторе. Не понятно как такое может быть в принципе
Я могу еще представить, что компилятор в дебаге не оптимизирует обращение к памяти вектора, и каждый раз обращение по индексу происходит заново. Т.е. итератор каждый раз высчитывается заново. Но тогда бы они были равны по скорости, а не быстрее

Michael
27.02.2017
10:55:35
может проверки на валидность памяти или что-то вроде?

Mikhail
27.02.2017
10:56:26
могут быть точнее

Denis
27.02.2017
10:56:45
Вектор реаллоки делает при увеличении, а лист нет

Google

Mikhail
27.02.2017
10:56:57
если они включены, то будут везде

Monday Begins on Saturday
27.02.2017
10:57:02
Ща clang'ом соберу

Mikhail
27.02.2017
10:57:08
Вообще стоит добавить еще один тест
Для вектора
когда числа брать напрямую из памяти, как будто это int[] а не вектор
В этом случае должно быть быстрее, а если нет, то это какая то магия
а если же быстрее, то разница в исполнении итераторов
итератор вектора почему то медленнее итератора листа в дебаге

Monday Begins on Saturday
27.02.2017
10:59:58
странная какая-то херня получается

Sergey
27.02.2017
11:00:59
о_О

Mikhail
27.02.2017
11:01:17

Michael
27.02.2017
11:01:32
и все-таки возмножно он постоянно проверяет выход за границу, листу то такие проверки не нужны

Monday Begins on Saturday
27.02.2017
11:01:50
типа vector<int> на vector<int *>? Или ты про другое?

Mikhail
27.02.2017
11:02:15

Michael
27.02.2017
11:03:04
что за метод?

Mikhail
27.02.2017
11:03:06
и посчитай используя pArray
фором например

Google

Mikhail
27.02.2017
11:03:14

Monday Begins on Saturday
27.02.2017
11:03:28
Ща попробую

Stanislav
27.02.2017
11:03:53
вангую погрешность измерений :D

Tema
27.02.2017
11:05:56

Michael
27.02.2017
11:06:00
а на классическом for такое же поведение?

Mikhail
27.02.2017
11:06:13
Нужно без итераторов
чтобы проверить гипотезу, что в них проблема

Admin
ERROR: S client not available

Mikhail
27.02.2017
11:06:59
т.е. то лист был бы быстрее, то вектор
а тут стабильно и разница большая
Кстати, если выяснится, что проблема в итераторах, можно будет чотко подъебывать собеседующих с этим вопросом :)

Monday Begins on Saturday
27.02.2017
11:08:23
стало быстрее

Mikhail
27.02.2017
11:09:04
Значительно быстрее
Теперь в релизе давай посмотрим

Monday Begins on Saturday
27.02.2017
11:12:08
У меня походу комп сыт уже этим примером. На релизе выдает 0 ms. Ща попробую поменьше велечину указать для замера времени

Антон
27.02.2017
11:14:40
ПИКО БЛЯТЬ СЕКУНДЫ

Google

Tema
27.02.2017
11:15:17
чотыбесишся!

Антон
27.02.2017
11:15:27
но чем меньше, тем ниже точность

Monday Begins on Saturday
27.02.2017
11:15:30
list cycle это ппц ?

Антон
27.02.2017
11:15:49
быстро.
но lc медленно

Mikhail
27.02.2017
11:16:14
Ну вот, похоже с итераторам вектора в дебаге какой то косяк

Tema
27.02.2017
11:16:45

Mikhail
27.02.2017
11:16:56
Но лучше несколько раз позапускай свой тест в дебаге и релизе, потому что у тебя процесс может прерываться на неопределенное время в случайные промежутки времени

Антон
27.02.2017
11:17:04

Mikhail
27.02.2017
11:17:14

Антон
27.02.2017
11:17:40
попробуй выводить данные в конце

Mikhail
27.02.2017
11:18:15

Антон
27.02.2017
11:45:54
поможете?
крч
есть вектор
нужно по нему итерироваться
но при этом чтобы итератор можно было переместить на любую поизцию во время итерации

Denis
27.02.2017
11:47:17
for(auto i=v.begin();i<v.end();++i)

Igor
27.02.2017
11:47:22
it = std::begin(vec);

Антон
27.02.2017
11:47:37

Igor
27.02.2017
11:47:50
Это только старт