Re: многопоточность и скорость
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 05.02.09 12:29
Оценка: 15 (1)
Здравствуйте, kot--, Вы писали:

K> Скомпилированный с оптимизацией(/O2) по скорости экзешник считает на 20% чем его однопоточный(/O2).

K> Скомпилированный БЕЗ ОПТИМИЗАЦИИ(/Od) — на 77% быстрее однопоточный(/Od).

K> Чем можно объяснить подобные результаты?


Вполне возможно, что в программе есть куски кода, которые действительно исполняются параллельно, а есть точки, в которых работа приостанавливается для взаимной синхронизации (даже на неявной, вроде копирования двух std::string). Без оптимизации параллельные куски кода работают дольше, поэтому время распределяется так, что несколько потоков редко одновременно оказываются на точках синхронизации. С оптимизацией куски кода работают быстрее, соответственно время распределяется по другому и потоки чаще одновременно входят в точки синхронизации и, соответственно, больше простаивают.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.