бахти оптимизацията!

12 отговора 0 прегледа
#1

бахти оптимизацията!

уиндоуското виzуално студио 2010, много голем проект, рибилд ол в рилийз мод взема 35 минути (компа е с 12 ядрен процесор с 24 гига памет) - махнах му оптимизацията в линкера - никакъв ефект, обче кат махнах C/C++ оптимизацията на всеки от подпроектите, рибилдът стана за 5 минути. Баси чудото, половин час оптимизация, при това времето се губеше в линкването, а опцията която бави нещата беше сложена в компилационните параметри.

Отговор
в отговор на DarkSide #2

Re: бахти оптимизацията!

Стига де, над какво работиш? Целия .НЕТ фреймуърк при мене се компилира за няколко секунди на средно бърз лаптоп i7 процесор за хиляда долара.

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

--
One day it will make sense.
Отговор
в отговор на DarkSide #3

Re: бахти оптимизацията!

ами може би с оптимизации бълва сложен за линкване код, например всяка функция от хедер я има и като инлайн и като функция, макар че само това не стига за такава огромна ралика.




NE SUTOR ULTRA CREPIDAM
Отговор
в отговор на DarkSide #4

Re: бахти оптимизацията!

Компилатора е доста сложна експертна система, отнема време за да измисли оптимизациите.

Отговор
в отговор на DarkSide #5

Сигурно

сорса ти е още на оная дискета - с която си кандидатствал хахахаха

Отговор
в отговор на Гypy #6

Re: бахти оптимизацията!

голям проект (> 10 000 файла), предимно Ц++, но има и ц има и петдесетина фортрански файла, всичко това се пише на линукс и само се портва на уиндоус, с визуал студио 6 се линкваше много по-бързо, откакто минахме на ВС 2008 стана адски бавно, а с това 2010 е още по-бавно ...

сефте го портвам на 2010 и не ми се линква в дибъг мод, затова компилирам в рилийз мод x64

Отговор
в отговор на zaphod #7

Re: бахти оптимизацията!

Не знаех, че майкрософтския компилатор позволява link-time code generation. Радвам се, че най-после се е появило в популярен компилатор.

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на | #8

Re: бахти оптимизацията!

на пръв гугъл "само" от 2001 се е появило...

Отговор
в отговор на Cин Mapмoт #9

Re: бахти оптимизацията!

За последно съм използвал компилатор на Майкрософт когато Visual C++ 1.5 още не беше излязло официално :)

Иначе тази възможност я имат (не популярни) компилатори още от началото на 90-те.

The last good thing written in C was Franz Schubert's Symphony No. 9.
Отговор
в отговор на DarkSide #10

Re: бахти оптимизацията!

Май линкера е умен и той оптимизира нещо.

Отговор
в отговор на DarkSide #11

Re: бахти оптимизацията!

Не си писал с каква версия на висуал студиото компилираш, но и така можем да предположим, че със сигурност си изключил поне "Whole Program Optimization with Link-Time Code Generation" според този article [линк]

От същата статия е интересно дали си изключил и "Profile Guided Optimization", ако въобще си я ползвал. Това което си написал, че след като си махнал оптимизацията от линкера е продължило да е бавно е много странно, защото и двата типа оптимизации се правят от линкера. Но в последно време нямам допит с новите майкрософтски компилатори и не мога да репродуцирам случая.

Във всеки случай е глупаво e да изключиш съвсем оптимизациите поне за продукшън кода, защото Майкрософт казват, че за SQL сервер-а им, с PGO дава 30% speed-up. Но пак зависи от продукта, ако не е необходимо са истискаш докрай всеки цикъл на процесора, голяма работа.

И НЕ ЗАБРАВЯЙ XKCD 303!!! [линк]


Hello, my name is Inigo Montoya

Отговор
в отговор на lnigo Montoya #12

Re: бахти оптимизацията! - не четеш внимателно...

Писал е - уиндоуското виzуално студио 2010.


Редактирано от Naki на

Отговор
в отговор на Naki #13

Re: бахти оптимизацията! - не четеш внимателно...

А, вярно. Аз съм виждал само express едитиона-а на това и там няма специално меню за profile guided optimisation в иде-то, ама не пречи да го има в компилатора като параметър.


Hello, my name is Inigo Montoya

Отговор