Re[12]: О производительности структур данных
От: Abyx Россия  
Дата: 01.11.12 14:16
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Здравствуйте, Abyx, Вы писали:


I>>>Опережающей выборки не будет — это и есть причина тормозов.


A>>о... это уже что-то новое, близкое к истине.

A>>а как же "много присваиваний"? а что с Address Generation Interlock?

I>Опережающей выборки не будет как раз из-за AGI.


угу, осталась только самая малость — как-то подтвердить это.
не, я не говорю что там нет AGI, но только как-то неочевидно, что именно AGI дает разницу в производительности
извини, но после того как тебе понадобился пяток постов чтобы сформулировать словосочетание "опережающая выборка", поверить тебе на слово как-то не получается
In Zen We Trust
Re[13]: О производительности структур данных
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.11.12 14:47
Оценка:
Здравствуйте, Abyx, Вы писали:

A>угу, осталась только самая малость — как-то подтвердить это.

A>не, я не говорю что там нет AGI, но только как-то неочевидно, что именно AGI дает разницу в производительности
A>извини, но после того как тебе понадобился пяток постов чтобы сформулировать словосочетание "опережающая выборка", поверить тебе на слово как-то не получается


Я на асме не писал около 12 лет , кода показать не смогу
Re[14]: О производительности структур данных
От: Abyx Россия  
Дата: 01.11.12 15:26
Оценка: 4 (1)
Здравствуйте, 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% данных
In Zen We Trust
Re[15]: О производительности структур данных
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 01.11.12 15:36
Оценка:
Здравствуйте, Abyx, Вы писали:

I>> Я на асме не писал около 12 лет , кода показать не смогу


A>да при чем тут вообще асм? и без асма понятно, что

A>
A>o = o->next;
o->>update();
A>o = o->next;
A>

A>можно выполнить только последовательно.

То есть, тебе все понятно, но тебе нужны какие то подтверждения ? Я чет не понимаю, чего же ты хочешь
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.