Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Abyx, Вы писали:
I>>>Опережающей выборки не будет — это и есть причина тормозов.
A>>о... это уже что-то новое, близкое к истине.
A>>а как же "много присваиваний"? а что с Address Generation Interlock?
I>Опережающей выборки не будет как раз из-за AGI.
угу, осталась только самая малость — как-то подтвердить это.
не, я не говорю что там нет AGI, но только как-то неочевидно, что именно AGI дает разницу в производительности
извини, но после того как тебе понадобился пяток постов чтобы сформулировать словосочетание "опережающая выборка", поверить тебе на слово как-то не получается
Здравствуйте, Abyx, Вы писали:
A>угу, осталась только самая малость — как-то подтвердить это.
A>не, я не говорю что там нет AGI, но только как-то неочевидно, что именно AGI дает разницу в производительности
A>извини, но после того как тебе понадобился пяток постов чтобы сформулировать словосочетание "опережающая выборка", поверить тебе на слово как-то не получается
Я на асме не писал около 12 лет , кода показать не смогу
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Abyx, Вы писали:
A>>угу, осталась только самая малость — как-то подтвердить это.
A>>не, я не говорю что там нет AGI, но только как-то неочевидно, что именно AGI дает разницу в производительности
A>>извини, но после того как тебе понадобился пяток постов чтобы сформулировать словосочетание "опережающая выборка", поверить тебе на слово как-то не получается
I> Я на асме не писал около 12 лет , кода показать не смогу
да при чем тут вообще асм? и без асма понятно, что
o = o->next;
o->update();
o = o->next;
можно выполнить только последовательно.
для массива указателей достаточно внести такую же зависимость между итерациями, вместо
for (auto it = vPtr.begin(); it < vPtr.end(); ++it)
(*it)->update();
написать
for (auto it = vPtr.begin(); it < vPtr.end(); it += (*it)->x & 1)
(*it)->update();
получится
vector<Obj*> (avg. time: 12 ms)
11 |######################### (25)
12 |################################################################### (67)
13 |####### (7)
14 |#
vector<Obj*> (slow) (avg. time: 92 ms)
87 |#
88 |
89 |########## (10)
90 |#################### (20)
91 |############################ (28)
92 |############## (14)
93 |############## (14)
94 |##### (5)
95 |###### (6)
96 |
97 |#
98 |#
т.е. примерно в 8 раз медленнее, хотя структура данных не поменялась, и мы обрабатываем всего 75% данных
Здравствуйте, Abyx, Вы писали:
I>> Я на асме не писал около 12 лет , кода показать не смогу
A>да при чем тут вообще асм? и без асма понятно, что
A>A>o = o->next;
o->>update();
A>o = o->next;
A>
A>можно выполнить только последовательно.
То есть, тебе все понятно, но тебе нужны какие то подтверждения ? Я чет не понимаю, чего же ты хочешь