Модераторы: feodorv
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Компиляция Boost.network, Долгая компиляция и переполнение кучи 
V
    Опции темы
SynTronic
Дата 1.9.2010, 16:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.9.2010
Где: Москва

Репутация: нет
Всего: нет



Доброго времени суток.
Есть такая библиотека, претендующая на включение в boost - Boost.Network.
Вот её последние исходники - http://github.com/mikhailberis/cpp-netlib/tree/0.7-devel

Всё хорошо, только скомпилировать с ней программу - это фантастика! На VS 2010 она может пол часа компилить пустой проект с включённым заголовочным файлом от библиотеки, а потом выдать критическую ошибку, например "fatal error C1076: ограничение компилятора: достигнут предел внутренней кучи", или " error C3859: превышен диапазон адресов виртуальной памяти для PCH; повторите компиляцию с параметром командной строки '-Zm508' или большим", если использовать PCH. Без PCH или с Zm1000 изредко компилится. На VC 2008 до этих критических ошибок дело доходит на порядок быстрее.

Всё это дело падает в файле assign_to.hpp из boost.spirit.

Я не пойму, может я что-то неправильно делаю, может быть Visual C++ при инстантировании шаблонов таким способом работает? В общем как сделать так, что бы ЭТО можно было скомпилировать? Или у автора библиотеки мегакомпьютер с 4 терабайтами ОЗУ и 10 процессорами стоит? Ведь он как то же это компилирует smile

Почему так может быть?
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 1.9.2010, 17:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



gcc заюзай. или mingw для венды.
PM WWW   Вверх
SynTronic
Дата 21.10.2010, 09:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.9.2010
Где: Москва

Репутация: нет
Всего: нет



Заюзал gcc. Только на нём вообще не компилируется smile Вылетает с ошибками инстанцирования шаблонов.

Вот непонятненько....

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1974.html
Цитата

What platforms are currently supported?

The asio library currently supports the following platforms and compilers: 
Win32 using Visual C++ 7.1 and Visual C++ 8.0. 
Win32 using Borland C++Builder 6 patch 4. 
Win32 using MinGW. 
Linux (2.4 or 2.6 kernels) using g++ 3.3 or later. 
Solaris using g++ 3.3 or later. 
Mac OS X 10.4 using g++ 3.3 or later.


Скачал стабильную 0.7.
Компилю пример http_client.hpp на VS2010 под Windows 7.

Код

#include <boost/network.hpp>
int main()
{
    boost::network::http::client httpClient;
    boost::network::http::client::request request("boost.org");
    request << boost::network::header("Connection", "close");
    
    boost::network::http::client::response httpResponse = httpClient.get(request);

    std::cout << boost::network::http::body(httpResponse) << std::endl;

    return 0;
}


Цитата

1>Build succeeded.
1>
1>Time Elapsed 00:02:05.63


Ну это же издевательство smile

P.S. Комп C2D 2.13GHz, 3GB оперативки, харды SATA... Всегда всё компилируется в момент!
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 21.10.2010, 09:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



непонял...
так скомпилилась, или как?
и почему скрываешь сообщения об ошибках?
PM WWW   Вверх
Alca
Дата 21.10.2010, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: 1
Всего: 50



Цитата

непонял...
так скомпилилась, или как?
и почему скрываешь сообщения об ошибках?

Типа медленно компилиться )))


--------------------
PM WWW ICQ Skype Jabber   Вверх
boostcoder
Дата 21.10.2010, 10:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(Alca @  21.10.2010,  10:12 Найти цитируемый пост)
Типа медленно компилиться

ничего удивительного. железо-то древнее -
Цитата(SynTronic @  21.10.2010,  09:36 Найти цитируемый пост)
C2D 2.13GHz


PM WWW   Вверх
SynTronic
Дата 21.10.2010, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.9.2010
Где: Москва

Репутация: нет
Всего: нет



Железо, говорите, древнее... Вот попробовал на Core i7 2.93 и 2Gb оперативной памяти.

Тот же самый http_client.hpp. VS 2008. Результаты:

release: 01 минута 28.9 с
debug:   01 минута 58.6 с

Если включить boost::network в предварительно скомпилированный заголовок, то копилятору памяти не хватает.
Я уже начинаю понимать, что это нормальное время компиляции.
Просто для примера, если кто использует библиотеку, какое у вас время компиляции?

И просветите, пожалуйста. Имеет ли смысл включать header-only библиотеки, которые построены только на шаблонах, в предвательно-скомпилированный заголовок? Компилятор вроде всё равно будет в каждом файле, где используется этот заголовок,  инстантировать используемые шаблоны или нет?
PM MAIL WWW ICQ   Вверх
boostcoder
Дата 21.10.2010, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


pattern`щик
****


Профиль
Группа: Завсегдатай
Сообщений: 5458
Регистрация: 1.4.2010

Репутация: 13
Всего: 110



Цитата(SynTronic @  21.10.2010,  13:07 Найти цитируемый пост)
какое у вас время компиляции?

Q9550-8Gb - 31сек.
естественно linux-gcc-4.5.1.

Добавлено через 1 минуту и 1 секунду
SynTronic, вы что, и вправду используете микрософткомпилятор?
PM WWW   Вверх
djamshud
Дата 21.10.2010, 15:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Пердупержденный
***


Профиль
Группа: Завсегдатай
Сообщений: 1655
Регистрация: 23.11.2009

Репутация: нет
Всего: 39



Бууст шикарен. Я бы на седьмой корке за это время успел собрать целую программу среднего размера.

Может быть стоит посмотреть в сторону более других кроссплатформенных средств работы с сетью? В данном случае очевидно, что детишки переиграли с темплейтами, так зачем тянуть эту бяку к себе в проект?


--------------------
'Cuz I never walk away from what I know is right
Alice Cooper - Freedom
PM   Вверх
SynTronic
Дата 21.10.2010, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 1.9.2010
Где: Москва

Репутация: нет
Всего: нет



boostcoder, пока ещё да smile

Спасибо большое за ответы.

Вот нашёл топик автора либы
Building cpp-netlib

Компилит тесты от либы...

Цитата

clang
real    3m4.589s
user    2m42.898s
sys    0m8.385s

GCC 4.4.3
real    4m51.581s
user    4m42.038s
sys    0m5.796s


Думаю, что ответ мне ясен smile
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Сети | Следующая тема »


 




[ Время генерации скрипта: 0.0681 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.