LINUX.ORG.RU

Какой компилятор даст самый быстрый код на x86 (i386)

 , , ,


1

3

Clang, gcc или icc? И я никак не могу понять, что такое gcc-llvm, и в чём его отличие от gcc, как им пользоваться блин в чужих проэктах с большим файлом сборки, а не моих? Зачем этот биткод вообще там нужен, и что с ним потом делать так и не разобрался.



Последнее исправление: gradle (всего исправлений: 4)

Зависит от кода. Разные компиляторы в разных местах хорошо оптимизируют и косячат.

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

Моя прога компилится 2 дня.

Тем более. Только так ты получишь ответ и никак иначе.

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

это как-то помешает проверить? ) Если два дня то возможно почитай по pimpl и прочие приёмы как разрабатывать на C++ так чтобы сборка не был слишком долгой.

Даже мегасложные проекты типа OpenOffice, игровые джвижки опенсорсные на Си++ собираются ну максимум несколько часов на железе десятилетней давности.

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

Старый аппарат, что ли?

Ну а если аппарат старый, то какой смысл в этой «теме»?

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

может ТС не в курсе про многопоточную компиляцию

Harald ★★★★★
()

Сделать билды на всех доступных тебе компиляторах и произвести тестирование. Больше никак. Разные компиляторы успешно оптимизируют в разных случаях и успешно говнят тоже в разных случаях причём всё может пересекаться. Универсальной таблички быть не может. А если твоя прога большая то уж подавно надо бенчмаркать и никак иначе. Хотя в любом случае никак иначе.

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от gradle

Ну и что? И да может быть ты вдруг не знал то можно собирать в несколько потоков, если конечная сборка у тебя через Makefile то -j число_ядер_твоего_пк ну а по остальным сценариям сборки гугли

LINUX-ORG-RU ★★★★★
()
Ответ на: комментарий от gradle

Издеваешься? Моя прога компилится 2 дня.

Издеваешься? GCC на древнем пне быстрее собирается

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

Да мне нужно её с lto компилить, а lto это невероятно медленная фигня, даже thin оказался медленным.

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

Моя прога компилится 2 дня.

Судя по твоим предыдущим сообщениям, у тебя на машине мало памяти, ты линкуешь в несколько потоков, и поэтому вместо оперативки используется своп. Тот же LLVM при сборке позволяет указать, в сколько потоков линковать. Можно собирать в четыре потока, но линковать только в один. Потому что гигантское потребление ОЗУ линкером — общая проблема. С ней мало что можно сделать.

Ну а вообще решение таких проблем — поставить больше ОЗУ.

i-rinat ★★★★★
()
Ответ на: комментарий от gradle

И вообще, я компилирую через виртуальную машину на 4-ядерном amd, и так как lto включён, всё уходит в медленный swap. Без lto компилилось 2 дня, а с ним месяц. И потратить 4 месяца на тесты, не охота как-то.

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

> Ну а вообще решение таких проблем — поставить больше ОЗУ.

У меня lto поэтому медленно

vs

так как lto включён, всё уходит в медленный swap


У тебя памяти мало, поэтому медленно.

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

Озу больше 2 гигов мне не предоставили (можно конечно выбрать 4 и тогда виртуальная машина начнёт зависать без причины)

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

Озу больше 2 гигов мне не предоставили (можно конечно выбрать 4 и тогда виртуальная машина начнёт зависать без причины)

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

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

На ноутбук поставить да? Отличная идея. Так он у меня неразборный.

Так ноутбук или виртуалка? Что за фигню ты вообще пишешь? Арендуй в EC2, GCE или любом другом клауде на выбор хост на день и всё сделай на нём.

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

Купить ПК или арендовать сервер для сборок и расчётов. Нечего мучить тонкого клиента. Мне заказчик сервер выделял когда надо было много считать.

peregrine ★★★★★
()
Последнее исправление: peregrine (всего исправлений: 1)
Ответ на: комментарий от AnDoR

Vmware, запущенный через ноутбук ёмаё. Пока я загружу свои файлы на эту виртуалку, пол года пройдёт, с моим интернетом.

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

Vmware, запущенный через ноутбук ёмаё. Пока я загружу свои файлы на эту виртуалку, пол года пройдёт, с моим интернетом.

Мы обо всей этой твоей ерунде сами должны были догадаться?

Телепаты в отпуске.

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

Я вообще не об этом спрашивал, а просто, какой компилятор генерирует быстрый код для моей архитектуры. Остальные программные нюансы мне не важно.

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

Озу больше 2 гигов мне не предоставили

Да ты издеваешься. Арендуй VPS’ку с 32 гигами. Недавно искал, нашёл такую за 3-4 тысячи рублей в месяц, в России. Правда, ещё не пробовал там заказывать.

i-rinat ★★★★★
()
Ответ на: комментарий от peregrine

Ну чтож, код так код, значит я вообще не буду компилировать, тратить на это 4 месяца ну никак не собираюсь

gradle
() автор топика
Ответ на: комментарий от i-rinat

Интернет медленный, чтобы туда отослать 20 гигов моих программ/библиотек, и проприетарные большинство.

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

Эххх … Если у твоего ноута не самая худшая сетевуха, то поставь гдето в локалке билд-сервер, и используй distcc на своем ноуте - все будет компилится за секунды.

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

Интернет медленный, чтобы туда отослать 20 гигов моих программ/библиотек, и проприетарные большинство.

«Медленный» это сколько?

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

Денег у него нема. Даже на инет и аренду сервера. Что он забыл в IT, где деньги нужны для того чтобы в него просто въехать, не говоря о том, чтобы работать, я ХЗ.

peregrine ★★★★★
()

зависит от целевой системы.

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

Интернет медленный, чтобы туда отослать 20 гигов моих программ/библиотек

На VPS’ках зато он достаточно быстрый. С гитхаба репозитории клонируются со скоростью 30 мегабайт в секунду.

и проприетарные большинство

Если проприетарные, значит ты работаешь на какую-то контору. Попроси их выделить сборочную VPS’ку в их облаке, куда они положат нужные проприетарные компоненты.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

Спасибо за советы, попробую все варианты

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

Что он забыл в IT

Судя по прошлым инкарнациям, ТС пытается играть в Windows-игры на телефоне с Android через Exagear с запущенным в нём Wine. Но так как Exagear не использует возможности телефона по 3d-ускорению, всё делается в программном режиме. ТС пытается выжать доли fps из llvmpipe.

На 4pda ТС как-то нафлудил себе репутацию супер-специалиста, и теперь от него там ждут результатов. Вот он и ищет новый чудо-компилятор, который ему волшебным образом даст 30% буста.

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat

И на счёт репутации, она получена полностью заслужено, кто бы если не я занялся этими идиотскими багами и лагами, и реально там хоть чего-то добился. Драйвер xlib пришлось переделать, чтобы получить желаемый прирост в 2 раза. Но это никого не интересует.

gradle
() автор топика
Ответ на: комментарий от i-rinat

У некоторых vps есть очень неприятная фича: выкачивание с неё данных объёмом свыше нескольких гигов тарифицируется заметно дороже, чем входящий трафик и в итоге может быть сопоставимо с оплатой за месяц.

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

Подумал, вдруг gcc мусор и есть что-то лучше

Типичное подумал от типичного эксперта. Ничего не знает, но уже подумал.

К тому же, судя по:

Судя по прошлым инкарнациям, ТС пытается играть в Windows-игры на телефоне с Android через Exagear с запущенным в нём Wine.

Откуда ты родил i386? Ты думаешь, что реальность каким-то образом соотносится с транслятором? Тебя обманули.

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