Autor Wątek: Nie planowane przyspieszenie kodu  (Przeczytany 2624 razy)

Offline Xirdus

  • Redaktor

# Sierpień 16, 2011, 21:58:47
To wszystkie src daj w inklude do jednego pliku i wyklucz z kompilacji, wtedy będziesz miał tylko jedne urzycie kompilatora. :)
I potem zmieniamy 'i' na 'j' i rekompilujemy wszystko... -.-

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline Kos

  • Użytkownik
    • kos.gd

# Sierpień 16, 2011, 22:08:24
Ta metoda (sklejanie całego projektu do 1 jednostki translacji przed kompilacją) ma sporo zalet, btw :) Ale do kompilacji kodu podczas rozwoju się ofc nie nadaje.

Offline yarpen

  • Użytkownik

# Sierpień 16, 2011, 23:16:47
Sporo? Moze troche przyspieszyc build, a inne?

Offline Kos

  • Użytkownik
    • kos.gd

# Sierpień 16, 2011, 23:22:44
"Trochę" przyspieszyć build to jedno (o ile RAM-u starczy :D). Wiem też o ułatwieniach dla optymalizacji. Za http://www.sqlite.org/amalgamation.html:

Cytuj
In addition to making SQLite easier to incorporate into other projects, the amalgamation also makes it run faster. Many compilers are able to do additional optimizations on code when it is contained with in a single translation unit such as it is in the amalgamation. We have measured performance improvements of between 5 and 10% when we use the amalgamation to compile SQLite rather than individual source files. The downside of this is that the additional optimizations often take the form of function inlining which tends to make the size of the resulting binary image larger.

Wierzę nabożnie, że chodzi tu nie tylko o inlining, lecz także o ilość założeń, jakie kompilator może sobie postawić o funkcjach.

Inną, drobną zaletą jest ułatwienie dystrybucji (był jakiś lib rozprowadzany w analgamacji po to, by nie rozdawać żadnych makefili, automejków i innych bzdur - a raptem jeden plik, który kompiluje się jednym poleceniem kompilatora, wszędzie. Imho taka z tego zaleta że żadna, ale komuś może na tym zależeć.

Offline yarpen

  • Użytkownik

# Sierpień 16, 2011, 23:36:37
Jak dla mnie jest to po prostu uzywanie wiekszego mlotka, zeby wbic prostokatny klocek do okraglego otworu. Dla rownowagi -- troche o wadach rozwiazania: http://altdevblogaday.com/2011/08/14/the-evils-of-unity-builds/