Käsikirja
2 FreeBSD Käyttöjärjestelmä
2.18 Muuta
3 Asennetut palvelinohjelmistot ja niiden käyttäminen
2.18 Muuta
Järjestelmän optimointi
Mitä on binäärien optimointi?
Optimointi yrittää tuottaa "parhaan" mahdollisen konekoodin lähde koodista. "Parhaan" tarkoittaa erilaisia asetuksia eri ohjelmille. Tietokantaa luodaan kasoittain tietoa, kunnes ohjelma saa nopeat ja tarkat tulokset. Ensimmäinen huomattava asia on koodin koko. Lyhyt koodi on nopeaa ja tarkkaa.
Optimoinnilla haetaan nopeutta joka saadaan laittamalla koodi ja laitteisto toimimaan yhdessä tehokkaasti.
Muisti arkkitehtuurit, putkijohdot, on- ja off-chip välimuistit -- kaikki vaikuttaa koodin suorituskykyyn tavoilla jotka eivät ole selviä "koodarin" koodikielellä. Optimisointi mikä saattaa näyttää tuottavan nopeamman koodin voi todellisuudessa luoda pitkän koodin joka lisää välimuisti virheitä.
Optimointi ei ole yksinkertaista tai itsestään selvää, ja eri algoritmien yhdistelmät voivat johtaa ei-toivottuihin lopputuloksiin. Mikä herättää kysymyksen, mitkä ovat parhaat optiot kullekin ohjelmalle?
Ilman '-O', vain muuttujille varataan paikka rekisteristä. Valmis koodi on vähän huonompaa kuin ilman '-O':ta tuotettu PCC:llä..
'-O':n kanssa kääntäjä yrittää pienentää koodin kokoa ja ajo aikaa.
Kun määrität '-O', kaksi optiota menee päälle("-fthread-jumps" ja "-fdefer-pop")
Koneissa joissa on lykättyjä paikkoja, "-fdelayed-branch" optio menee päälle. Ne koneet jotka tukevat virheenkorjausta ilman kehysosoitinta "-fomit-frame-pointer" menee päälle. Jossain koneissa saattaa mennä muitakin optioita päälle.
-O2 | Optioi vielä enemmän. Melkein kaikki tuetut optimaatiot mitkä eivät sisällä tilannopeus vaihtelua suoritetaan. |
-O3 | Optio vieläkin enemmän. Laittaa kaiken minkä -O2 ja sen lisäksi -finline funktion. |
-Os | Optioi koodin koon. Laittaa päälle ne optiot -O2:sesta jotka eivät kasvata koodin kokoa. |
-O0 | Ei optimointia |
Jos käytät monia -O optioita, ilman tai taso numeroiden kanssa viimeisin optio vain toteutuu.
Kuinka käännät itse binäärejä make tai gmake komennolla
Unixissa on olemassa make- ja gmake ovat työkaluja, jolla pystyy helposti hallitsemaan ohjelmistokokonaisuuksia. Ohjelmien väliset riippuvuudet käännöksessä sekä latauksessa, kääntäjien parametrit ja kirjastoiden rakentamiset kerrotaan makefile- tai Makefile tiedostossa, josta make ohjelma lukee ne.
Yleisesti kuinka, joku ohjelma käännettään lähdekoodista itse:
Huom! tämä on vain yleinen ohje kääntämisestä, älä pidä sitä sana tarkkana ohjeena. Suosittelen lukemaan sinun README tiedoston. Lähdekoodin kääntäminen itse on usein FreeBSD:llä turhaa, koska portti kokoelmasta löytyvät käyttämistäsi ohjelmista "portit". Lähdekoodista käännettäessä ja asennettaessa ohjelmat eivät näy asennettujen pakettien listassa ja näin ollen niiden poistaminen on vaikeampaa, kuin ohjelmien, jotka ovat asennettu portti kokoelmasta.
Ohjelman kääntäminen lähdekoodista itse.
- Pura ohjelman pakkaus (tar zxvf paketti.tar.gz tai tar jxvf peketti.tar.bz2)
- Siirry hakemistoon johon purit koodisi (cd hakemisto)
- Käynnistä configure scripta ja anna tarvittavat arvot (./configure)
./configure -help komennolla saat tietää configure ohjelman valitsimet, jolla voidaan asettaa erilaisia asetuksia ennen ohjelman kääntämistä, kuten asennus kansio.
Muutama yleisin valitsin
1. --prefix=/home/tunnus | Asennus hakemisto |
2. --libdir=hakemisto | objektin koodi kirjastot hakemisto |
3. --includedir=hakemisto | C otsikkotiedot hakemisto |
4. Käännä lähdekoodisi binaareiksi (make tai gmake komenolla) |
5. Asennetaan binaarit paikoilleen (make install) |
Kuinka voin poistaa asennetun ohjelman?
Asennettuasi ohjelman voit yrittää poistaa ohjelmaa lähdekoodista, jonka käänsit seuraavalla komennoilla make uninstall, gmake uinstall, make deinstall, gmake deinstall. Kaikkia ohjelmia välttämättä ei voida poistaa näillä komennoilla. Tällöin joudut turvautumaan ohjelman poistamiseen käsin.
|