Boost и MSVS 2010, конфликт библиотек |
Здравствуйте, гость ( Вход | Регистрация )
Boost и MSVS 2010, конфликт библиотек |
Iron Bug |
20.8.2010, 21:22
Сообщение
#1
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
Программистам на заметку: новая студия Microsoft Visual Studio 2010 не дружит с бустом.
Проблема в перекрытии некоторых стандартных внешних макросов и функций, объявленных в базовых библиотеках буста и добавленных в новые стандартные библиотеки студии. Например, перекрываются определения pair, из-за чего не работают многие бустовские фичи, алгоритмы, bind, лямбда-функции, фьючи(futures) в интерпроцессе. Вероятно, проблем куда больше и пока не понятно, как их решать. Если дело касается одного-двух применений - можно локально написать макросы или указать явно область видимости. Но когда начинается применение перекрытых новой студией определений где-то внутри используемых библиотек - это заставляет отказаться от идеи скрещивания буста и студии 2010. Разработчики буста в курсе проблемы, но пока что изменений нет. Я пока что отказалась от студии 2010. В сишном компиляторе там не так много полезного добавилось по сравнению с предыдущими версиями. Посмотрю, что будет дальше. |
|
|
Iron Bug |
1.9.2010, 0:55
Сообщение
#2
|
Профессионал Группа: Модератор Сообщений: 1611 Регистрация: 6.2.2009 Из: Yekaterinburg Пользователь №: 533 Спасибо сказали: 219 раз(а) Репутация: 12 |
если вы все же имели ввиду boost.thread.future<>, то никакого прироста производительности он не дает. да, его имела в виду, фьюча из thread'а. поправила пост. просто тест был на синхронизацию потоков и я писала очень быстро (времени было мало), а интерпроцесс "засел в кеше" от проверки ошибок, которые лезли со студией. что касается "прироста производительности" - я про это не говорила. я сказала, что это самый быстрый метод синхронизации потоков. всего лишь. это из моего тестирования я такой вывод сделала. я сравнивала мьютексы, условные переменные, прерывания потока (на самом деле, ещё ради интереса проверяла скорость сигналов в однопоточных вызовах). в венде быстрее всех оказались фьючи. под линюксом - условные переменные, а фьючи - следующие по скорости. таким образом, для синхронизации кроссплатформенных риалтаймовских приложений я для себя выбрала фьючи. впрочем, под линюксом у меня и так проблем не возникает - он гораздо шустрее венды. а вот ради ускорения в венде пришлось писать тест. |
|
|
Текстовая версия | Сейчас: 30.11.2024, 0:37 |