crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Boost и MSVS 2010
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
Iron Bug Дата 1.9.2010, 20:54
 
Цитата(DEADHUNT @ 1.9.2010, 14:26) *
как можно сравнивать производительность объектов предназначенных для различных целей? естественно то что эти объекты эффективнее использовать для того, для чего они предназчены.

вполне даже можно. задача была - синхронизировать выполнение разных потоков. это можно сделать очень разными способами. меня интересовал наиболее быстрый из них.
DEADHUNT Дата 1.9.2010, 11:26
 
Цитата(Iron Bug @ 1.9.2010, 1:55) *
я сравнивала мьютексы, условные переменные, прерывания потока

как можно сравнивать производительность объектов предназначенных для различных целей? естественно то что эти объекты эффективнее использовать для того, для чего они предназчены.
Iron Bug Дата 1.9.2010, 0:55
 
Цитата(niXman @ 30.8.2010, 3:14) *
если вы все же имели ввиду boost.thread.future<>, то никакого прироста производительности он не дает.

да, его имела в виду, фьюча из thread'а. поправила пост. просто тест был на синхронизацию потоков и я писала очень быстро (времени было мало), а интерпроцесс "засел в кеше" от проверки ошибок, которые лезли со студией.
что касается "прироста производительности" - я про это не говорила. я сказала, что это самый быстрый метод синхронизации потоков. всего лишь. это из моего тестирования я такой вывод сделала. я сравнивала мьютексы, условные переменные, прерывания потока (на самом деле, ещё ради интереса проверяла скорость сигналов в однопоточных вызовах). в венде быстрее всех оказались фьючи. под линюксом - условные переменные, а фьючи - следующие по скорости. таким образом, для синхронизации кроссплатформенных риалтаймовских приложений я для себя выбрала фьючи. впрочем, под линюксом у меня и так проблем не возникает - он гораздо шустрее венды. а вот ради ускорения в венде пришлось писать тест.
DEADHUNT Дата 31.8.2010, 10:10
 
Цитата(niXman @ 31.8.2010, 1:53) *
смотри std::future<>

это переименованный boost::thread::unique_future, точно также как в boost::scoped_ptr, а в std его назвали unique_ptr.
последнее время не использую C++0x, т.к. могут возникнуть проблемы с компиляцией под различные ОСи, и с запуском под линуксом без соответствующего stdlibc++
niXman Дата 31.8.2010, 0:53
 
Цитата
а что это там за шаблон future?

смотри std::future<>
BRE Дата 30.8.2010, 23:38
 
Цитата(DEADHUNT @ 30.8.2010, 23:57) *
Цитата(BRE @ 30.8.2010, 23:25) *
IMHO, не совсем.
http://blog.emptycrate.com/node/290

имелось ввиду unique_future/shared_future(ссылка), а что это там за шаблон future? я такого в boost не видел, и тем более там внизу написано что это fake.

По мне, это не просто обертка над какой-то синхронизацией, а скорее объект позволяющий выполнить некую операцию в отдельном потоке и по готовности отдать результат. Хотя методы синхронизации так конечно используются.
DEADHUNT Дата 30.8.2010, 22:57
 
Цитата(BRE @ 30.8.2010, 23:25) *
IMHO, не совсем.
http://blog.emptycrate.com/node/290

имелось ввиду unique_future/shared_future(ссылка), а что это там за шаблон future? я такого в boost не видел, и тем более там внизу написано что это fake.
BRE Дата 30.8.2010, 22:25
 
Цитата(DEADHUNT @ 30.8.2010, 22:55) *
boost::thread::future это скорее обёртка над mutex, wait_condition.

IMHO, не совсем.
http://blog.emptycrate.com/node/290
DEADHUNT Дата 30.8.2010, 21:55
 
Цитата(niXman @ 30.8.2010, 1:14) *
в boost.interprocess нет класса future. вы о чем? :acute:

тоже не понравилось когда прочитал.
Цитата(niXman @ 30.8.2010, 1:14) *
boost.thread.future<> не имеет никакого отношения к механизмам синхронизации. это просто обертка над boost.thread, создающая объект владеющий потоком, в котором "живет" boost.thread :)

boost::thread::future это скорее обёртка над mutex, wait_condition.
niXman Дата 30.8.2010, 0:14
 
Цитата
фича interprocess'а: фьюча (future).

в boost.interprocess нет класса future. вы о чем? :acute:

Цитата
(future). даёт несомненное преимущество по скорости

если вы все же имели ввиду boost.thread.future<>, то никакого прироста производительности он не дает.

Цитата
даже по сравнению с использованием бустовских мьютексов (хотя это странно, но факт).

boost.thread.future<> не имеет никакого отношения к механизмам синхронизации. это просто обертка над boost.thread, создающая объект владеющий потоком, в котором "живет" boost.thread :)

Цитата
может, потом опубликую результаты тестов.

угу. дико любопытно понять, о чем вы все же :)
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 10.2.2025, 20:21