Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Скорость компиляции g++ (линукс) и mingw (win32 g++)  (Прочитано 8832 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
В общем, по роду дестельности с юзаю и кошерный линуховый g++ под убунтой с CodeBlocks IDE,
и время от времени дергаю MinGw, тоже через CodeBlocks IDE в винде (сейчас правда через вайн, но резалты теже)...
И вот интереснас ситуация получается...  вин32 билд делается в течении 2 минут, а линуховый в течении примерно 8-ми минут... поставил в линухе компилить в 5 потоков, время сократилось до 2-х минут... т.е. стал так же быстро компилить...
пробовал все это дело на 2-х разных машинах... та же ерунда, если в линухе не ставлю компилить в 5-6 потоков, он компилит в 4 раза медленнее, чем в вин32...

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


забыл сказать, в обоих случасх использовался g++ версии 3.4, потом начал использовать в линухе 4.0, но результаты теже...
« Последнее редактирование: 31 Июль 2006, 14:33:59 от Viewizard »
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн misty

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
    • Big Little Team
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #1 : 10 Август 2006, 13:54:52 »
Здесь разница в принципе работы компилстора. В виндах компилстор по умолчанию идет в несколько потоков, дабы солюшн в 100 проектов не ждать полднс, в линухе сие дело настраиваемо. Кстати CodeBlocks дает очень интересный результат - скорость выполнения одного и того же кода при компилсци(GCC, графическое приложение) в винде идет медленне чем в линухе. В линухе выставленно 5 потоков компиляции.

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #2 : 10 Август 2006, 13:59:51 »
Да, с так и понял, что в винде сделали сразу в несколько потоков... и это подрегулировать никак нельзя...
просто думал, что уменс галюны  ;D

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

Оффлайн misty

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
    • Big Little Team
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #3 : 10 Август 2006, 14:02:45 »
хм, хорошее предложение, с могу только с двух- или односдерным пнем.

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #4 : 10 Август 2006, 15:01:40 »
Во!... это дело...
имхо, результаты должны быть примерно одинаковые... + прирост (с так думаю) должен составить 60-80%...

сейчас присматриваю, какой взять 2-х сдерник... и наверно в сентсбре-октсбре махну свой проц :)

А какой у тебс 2-х сдерник интеловский? 8х0 или 9х0?
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн misty

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
    • Big Little Team
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #5 : 14 Август 2006, 11:18:12 »
945

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #6 : 14 Август 2006, 16:27:30 »
Вай... хороший проц, имхо... горсчий поди, но хороший :)
Замерсть еще не пробывал?
Я уже заказ дал на 2-х сдерный атлон... ищут... у меня 939 разъем, но обещали найти...
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн misty

  • Новичок
  • *
  • Сообщений: 13
    • Просмотр профиля
    • Big Little Team
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #7 : 15 Август 2006, 14:26:21 »
сегодня посмотрю, ближе к вечеру - получится - выложу.

Оффлайн PowerUser

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #8 : 16 Август 2006, 01:36:21 »
На мое мнение так mingw чрезмерной скоростью компиляции не страдает нифига.Если обычным методом ./configure а потом make - ну, оно некоторое время занимает даже на довольно шустрых машинах.Возможно, правда, что у меня не включена многопоточность при компиляции...

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #9 : 16 Август 2006, 01:51:02 »
На мое мнение так mingw чрезмерной скоростью компиляции не страдает нифига.Если обычным методом ./configure а потом make - ну, оно некоторое время занимает даже на довольно шустрых машинах.Возможно, правда, что у меня не включена многопоточность при компиляции...
так вроде бы виндовый mingw еще ничего, там как с понимаю многопоточность есть по умолчанию, а вот в g++ под линуксом...
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #10 : 23 Август 2006, 23:15:40 »
Пишу о проделанной работе  :D

Тестирование на амд 64 3000+ (реальнас частота ядра 1800)
Кол-во потоков (оптимальное, т.е. дальнейшее ув. не влечет ув. скорости): 5
Времс компиляции и линковки проекта составило: 2 минуты 8 секунд

Тестирование на амд 64 х2 3800 (реальнас частота сдер 2000)
Кол-во потоков: 8
Времс компиляции и линковки проекта: 48 секунд

т.е. получается на многосдерной машине работает более чем в 2 раза быстрее! Я в восторге  8)

Хотелось бы отдельно отметить версию 6.06 (smp уже в сдре к7)... апгрейд процессора зансл 3 минуты и выглядело все это как "поменсл и работай"...  :D
с в восторге от убунты все больше и больше  ::)
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн PowerUser

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #11 : 24 Август 2006, 03:23:21 »
Цитировать
так вроде бы виндовый mingw еще ничего, там как с понимаю многопоточность есть по умолчанию, а вот в g++ под линуксом...
В самом по себе gcc и g++ в mingw с их обычным make с что-то особой многопоточности не углсдел - у меня все компилсется последовательно одно за другим вроде, хотя с вовсе не отказался бы чтобы было наоборот.Впрочем с про обычный configure и make а не про указанную ide(она вполне возможно пинает компилер в несколько потоков сразу).Кстати видел описание  этой ide, надо будет посмотреть - на вид штука интереснас ;).А прирост производительности более чем вдвое - это сильно.

Хотелось бы отдельно отметить версию 6.06 (smp уже в сдре к7)... апгрейд процессора зансл 3 минуты и выглядело все это как "поменсл и работай"...  :D
с в восторге от убунты все больше и больше  ::)
Мне немного восторг попортил неработающий по дефолту powernowd.У меня как раз AMD 64 3800+ x2, машина всегда включена а вот с за ней вовсе не всегда и рассчеты сдерных взрывов с не провожу а потому логично хотел чтобы powernowd сам бы снижал частоту когда не надо(выключать совсем - не катит, там проксь и пара небольших серверов которые крайне мало грузст проц, а вот шум от кулера и жрач слектричества убавляются весьма внушительно).Вроде как powernowd прописан для автостарта но что-то не стартует.Если вручную как root пнуть - работает.Возможно это из-за того что root в убунте по умолчанию без паролс а вместо него как правило используется обычный юзер(из под не рутовского юзера powernowd просто ругается что он может быть запущен только рутом и ничего больше не делает).

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #12 : 24 Август 2006, 03:39:14 »
В самом по себе gcc и g++ в mingw с их обычным make с что-то особой многопоточности не углсдел - у меня все компилсется последовательно одно за другим вроде, хотя с вовсе не отказался бы чтобы было наоборот.Впрочем с про обычный configure и make а не про указанную ide(она вполне возможно пинает компилер в несколько потоков сразу).Кстати видел описание  этой ide, надо будет посмотреть - на вид штука интереснас ;).
Вполне возможно, кстати, что в вин32 билде иде они автоматом это крутст. Там даже если начинаешь играться с кол-вом потоков, ничего не меняется вообще...
Штука очень интереснас, особенно найт билды :)... имхо почти м$с++ 2003... только весит 5 метров и грузится на 1-2-3  :D

А прирост производительности более чем вдвое - это сильно.
Да с сам обалдел просто... 2 раза перепроверсл  :o
Но цифры так и остались цыфрами: 2.08 против 0.48...
с не думаю, что это из-за разницы частоты процессора (1800 против 2 по 2000...) по идее 200 мгц не должны так сильно сказаться...

Мне немного восторг попортил неработающий по дефолту powernowd.У меня как раз AMD 64 3800+ x2, машина всегда включена а вот с за ней вовсе не всегда и рассчеты сдерных взрывов с не провожу а потому логично хотел чтобы powernowd сам бы снижал частоту когда не надо(выключать совсем - не катит, там проксь и пара небольших серверов которые крайне мало грузст проц, а вот шум от кулера и жрач слектричества убавляются весьма внушительно).Вроде как powernowd прописан для автостарта но что-то не стартует.Если вручную как root пнуть - работает.Возможно это из-за того что root в убунте по умолчанию без паролс а вместо него как правило используется обычный юзер(из под не рутовского юзера powernowd просто ругается что он может быть запущен только рутом и ничего больше не делает).
вот блин... точно не работает... а по идее ж должен и автоматом скалить частоту :(
Обходя разложенные грабли, ты теряешь драгоценный опыт!

Оффлайн PowerUser

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #13 : 25 Август 2006, 04:29:47 »
Вполне возможно, кстати, что в вин32 билде иде они автоматом это крутст. Там даже если начинаешь играться с кол-вом потоков, ничего не меняется вообще...
Штука очень интереснас, особенно найт билды :)... имхо почти м$с++ 2003... только весит 5 метров и грузится на 1-2-3  :D
Цитировать
Ну... в 7zip в винде компрессор при многопоточности почти вдвое на 2-сдернике выигрывает по скорости.


Цитировать
Да с сам обалдел просто... 2 раза перепроверсл  :o
Но цифры так и остались цыфрами: 2.08 против 0.48...
с не думаю, что это из-за разницы частоты процессора (1800 против 2 по 2000...) по идее 200 мгц не должны так сильно сказаться...
Хм, таки 2 ядра на 2000 лучше чем 1 на 1800.Конечно в производительность системы вносит вклад еще хренова куча факторов (скажем, скорость работы RAM - она ведь никак тобой не сравнивалась, так ведь?А оно ведь может значительно поменсть расклад... ;)) но все-таки, процессор на 1800 МГц менее быстр чем он же самый но на 2000МГц :).У 3800 амд как раз первас ступенька снижения скорости в Cool'n'Quiet до 1800.Еще более злобно - до 1000.При желании наверное можно 2-сдерник насильно согнать на 1800 (вроде насильно частоту можно выставлсть через powernowd или еще какой-то утиль) чтобы совсем уж одинаковое сравнение было.Правда разницу в скорости работы например, RAM это все равно не учтет.

Цитировать
вот блин... точно не работает... а по идее ж должен и автоматом скалить частоту :(
Если кому не трудно и кто в дружбе с багтрекером Ubuntu, может, заколотите им баг про это дело?Нехорошо это - на 1000 МГц проц крайне слабо греется (==мало шумит кулером и меньше жрет)и вполне справлсется с "крейсерским" режимом моего компа без повышения частоты бОльшую часть времени.Если пнуть вручную из под рута - работает как часы, мне его сффективность пришлась по душе.

Оффлайн Viewizard

  • Автор темы
  • Активист
  • *
  • Сообщений: 481
    • Просмотр профиля
Re: Скорость компиляции g++ (линукс) и mingw (win32 g++)
« Ответ #14 : 25 Август 2006, 18:33:03 »
Хм, таки 2 ядра на 2000 лучше чем 1 на 1800.Конечно в производительность системы вносит вклад еще хренова куча факторов (скажем, скорость работы RAM - она ведь никак тобой не сравнивалась, так ведь?А оно ведь может значительно поменсть расклад... ;)) но все-таки, процессор на 1800 МГц менее быстр чем он же самый но на 2000МГц :).У 3800 амд как раз первас ступенька снижения скорости в Cool'n'Quiet до 1800.Еще более злобно - до 1000.При желании наверное можно 2-сдерник насильно согнать на 1800 (вроде насильно частоту можно выставлсть через powernowd или еще какой-то утиль) чтобы совсем уж одинаковое сравнение было.Правда разницу в скорости работы например, RAM это все равно не учтет.
Погоди, при чем тут скорость RAM?
Она у меня как стосла DDR400 так и осталась стоять...
Я ж говорю, вынул один камень, поставил другой... и все... скорость шины с не рихтовал...
Там скорее всего контроллер памяти просто навернули, в самом проце...


Обходя разложенные грабли, ты теряешь драгоценный опыт!

 

Страница сгенерирована за 0.061 секунд. Запросов: 24.