LINUX.ORG.RU

g++ долгая компиляция


0

3

С чем связана долгая компиляция c++ кода, с компилятором g++ или ключами оптимизации и т.п. Есть ли альтернатива g++ в линуксе, как есть способы увеличения скорости компиляции (покупка мощного процессора исключается)?

Ответ на: комментарий от Kosyak

А какая разница между jvm-кодом и машинным кодом Х86? С принципиальной точки зрения ее нет.

LongLiveUbuntu ★★★★★
()
Ответ на: комментарий от Waterlaz

C++ - объективно плохой язык почти со всех точек зрения.

То то я смотрю на нем весь нормальный софт написан, а весь багованый\тормозной на явах, питонах и прочих скриптах.

viktorzinchuk
() автор топика
Ответ на: комментарий от trex6

а загрузки Eclipse на своей машинке я так и не дождался. 2 раза пробовал

Выкинь свой GCJ.

iZEN ★★★★★
()
Ответ на: комментарий от Waterlaz

Waterlaz

C++ - объективно плохой язык почти со всех точек зрения.

не бывает плохих или хороших языков

Waterlaz

Отрецание

segmentation fault, core dumped

shty ★★★★★
()
Ответ на: комментарий от viktorzinchuk

То то я смотрю на нем весь нормальный софт написан

когда душа требует, а руки и мозги родить ничего стоящего не могут - начинаются поиски философского камня хорошего ЯП, не всегда так конечно - но для лоровских аналитиков вполне применимо

anonymous
()
Ответ на: комментарий от AlexVR

Для начала, что за проект? Сколько в нём файлов? Если ты компилируешь один большой файл, то начни его дробить, поможет при разработке сократить время. Избегай шаблонов и излишней оптимизации при компиляции

Возьми примеры из boost::spirit. Всего несколько единиц трансляции (иногда вообще одна), а собирается долго и жрет немеряно памяти. Это C++ во всей красе, и разбить далее на меньшие единицы трансляции нельзя, т.к. модульность в языке плохая (через #include) и компиляторы не осиливают экспорт шаблонов.

Так что пользоваться такой библиотекой очень не удобно, если грамматика языка хотя бы правил на 20 получается. Постоянные тормоза в сборке и часто невменяемые ошибки при инстанцировании шаблонов.

kamre ★★★
()
Ответ на: комментарий от anonymous

нормальные люди берут antlr

А я и взял потом в итоге ANTLR, заодно на Java переписал. Гораздо быстрее и удобнее с такими инструментами работать. Там compile on save обычная вещь, и сборка вообще не тормозит в отличии от C++.

kamre ★★★
()
Ответ на: комментарий от Waterlaz

Автоматически ставят девочкам в совковом вузе за «методическое мастерство». Им даже в очередях стоять не приходится.

Отрецание

Почти не палишься. Брысь уроки делать.

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

http://love5an.livejournal.com/364435.html

За одно только «неудобства при работе с динамической памятью» мнение автора становится некомпетентным, он похоже кроме программулек для десктопа нечего не писал.

viktorzinchuk
() автор топика
Ответ на: комментарий от anonymous

фуу, ну опять, что за мания такая? ну не нравится - не пиши на нём, делов то, так ведь нет - надо обязательно прикручивать слона к люстре нитками

shty ★★★★★
()
Ответ на: комментарий от Waterlaz

Ну, мне 13 и что?

Даже если б тебе было биологически 43, ничего для тебя хорошего :)

все равно убогий

Аргументация в духе «А баба яга против!» (с)

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

Дада, такой авторитетный источник. Еще один бугуртит в ЖЖ о невозможности почесать яйца бензопилой, как он привык.

slackwarrior ★★★★★
()
Ответ на: комментарий от viktorzinchuk

убогий

Факты

Какие тебе факты нужны? «Убогий» — по-определению субъективное суждение.

А недостатков у языка хватает, это может отрицать только упёртый фантик. Что меня раздражает — кривой синтаксис (самый кошмар это указатели на методы), отсутствие вывода типов (в c++11 исправлено), километровые сообщения об ошибках (угловых скобочек больше чем круглых в лиспе). Жду пока c++11 станет мейнстримом, с ним «убогость» цпп сильно уменьшится.

Альтернатив по соотношению высокоуровневость-распространенность-быстродействие пока нет, хотя некоторые надежды вселяет vala.

anonymous
()
Ответ на: комментарий от anonymous

Выборочно

«friend» нарушают инкапсуляцию

Не нарушает, а наоборот. Открыть доступ внутреннему вспомогательному классу — это не нарушение инкапсуляции.

деструктор можно вызывать до выхода из блока кода

Мало ли что можно, можно и в память по адресу (void*) rand() записать, только никто в здравом уме этим заниматсья не будет.

неявно генерирумые конструкторы, деструкторы и операторы присваивания

Ни разу не вызывало проблем, нужно просто помнить об их дефолтном поведении и всё.

виртуальные методы в конструкторах не работают

Работают, но вызывать виртуальные методы из конструктора — ССЗБ.

Короче большинство пунктов — отсутствие защиты от дурака, наследие от С и аргументы типа «C++ говно, потому что он не Лисп»

anonymous
()
Ответ на: комментарий от slackwarrior

Еще один бугуртит в ЖЖ о невозможности почесать яйца бензопилой

Все с точностью наоборот.

anonymous
()
Ответ на: комментарий от viktorzinchuk

Факты обрисуй, иначе это не объективная а субъективная точка зрения.

1) грамматика с++ - это ппц. В результате парсеры с++ сложные, работают долго и все по разномы. have fun.

2) продуктивность написания программ низкая.

3) возможностей отстрелить себе ногу - тьма.

4) язык раздутый и толстый. Мало кто понимает все его фичи и каждый пишет на своем подмножестве С++.

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

Waterlaz ★★★★★
()

поменьше шаблонов, реализацию выносить в cpp(а не всё на свете а hpp), distcc

urykhy
()
Ответ на: комментарий от Waterlaz

продуктивность написания программ низкая.
В результате имеем кучу еле работающего софта

кроме того что программы на С++ объективно одни из лучших, твои гениальные выводы имеют мало общего с логикой или действительностью

anonymous
()
Ответ на: комментарий от anonymous

кроме того что программы на С++ объективно одни из лучших, твои гениальные выводы имеют мало общего с логикой или действительностью

С логикой? Отлично. Логика, она тем и хороша, что в логических выводах легко указать на ошибку. Прошу.

Waterlaz ★★★★★
()
Ответ на: комментарий от PolarFox

А самая популярная ОС — Шиндошс.

для десктопа - да

anonymous
()
Ответ на: комментарий от slackwarrior

Это пример того, что популярность — не критерий качества.

PolarFox ★★★★★
()
Ответ на: комментарий от slackwarrior

Я про «почесать яйца бензопилой». Lovesan и бугуртит в ЖЖ о том что в c++ это сделать очень легко, никакой защиты от дурака.

Где ты видел спискоту и нытье со стороны сторонников плюсов?

Я сторонник, но недостатки в c++ вижу и признаю. В отличии от фанатиков, которые начинают баттхёртить, стоит лишь усомниться в идеальности плюсов.

anonymous
()
Ответ на: комментарий от anonymous

Я про «почесать яйца бензопилой». Lovesan и бугуртит в ЖЖ о том что в c++ это сделать очень легко, никакой защиты от дурака.

Бензопилы редко делают в расчете на дураков. В лучшем случае пишут подробный дисклаймерв в RTFM, чтобы дураки, у которых бугурт по поводу отпиленной ноги, ковыляли по-тихонечку лесом.

усомниться в идеальности плюсов

Эт на здоровье, как говорится. Выстрел в ногу всегда на совести стрелка, особенно если он не знал, что заглядывать в дуло пистолета опасно для жизни :)

slackwarrior ★★★★★
()
Ответ на: комментарий от anonymous

но недостатки в c++ вижу и признаю

Вот почему я не могу так написать?

class A
{
...
    int cacheHits = 0;
    int cacheMiss = 0;
...
};

Мелочь вроде, но неприятно.

anonymous
()
Ответ на: комментарий от anonymous

Вот почему я не могу так написать?

в С++11 можешь

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.