Kirjautuminen

Haku

Tehtävät

Keskustelu: Yleinen keskustelu: Ohjelmien koosta

Azure [17.04.2007 14:23:31]

#

Mistä johtuu, että aloittelijana minun komentorivi versio laskin:
https://www.ohjelmointiputka.net/keskustelu/14867-ongelma-ehtorakenteessa
On monta kertaa suurempi kuin tietokoneen oma laskin, vaikka siinä on ominaisuuksia tuplasti enemmän kuin minun alkeislaskimessani. Johtuuko se suurimmaksi osakseen kielestä, lähdekoodista(joka on turha pitkä omassani) vai
käytetystä koodikirjastosta.

Tietokoneen oma laskin: koko levyllä 4,00kt
Minun oma komentorivi ohjelma: koko levyllä huimat 466kt

Tuo minun laskimeni koodi kyseisessä linkissä, käännettynä ei silti vastaa samaa arvoa minkä annoin, koska lisäsin siihen kerto ja jakolasku ominaisuudet vielä!

Pekka Karjalainen [17.04.2007 14:39:49]

#

Tietokoneen oma laskin luultavasti linkittää dynaamisesti kirjastoja. Se säästää ainakin tilaa.

Suuri exen koko johtuu kielestä ja kirjastoista. Jos käytät gcc-kääntäjää tai siitä johdettua ympäristöä, strip-komento postaa debuggaustiedon exestä ja se pienenee. Silti koko on joskus häiritsevän iso pienissä ohjelmissa.

Opetus on, että pienet ohjelmat tulee tehdä dynaamisesti linkaten tai sitten matalan tason kielellä, jossa on pieni minimiexen koko. Yksi vaihtoehto on myös käyttää jotain skriptikieltä, jolloin vain lähdekoodi riittää. Koon lisäys kirjastoista on kuitenkin vakiokokoinen, joten isossa ohjelmassa pari sataakin kiloa kirjastoista ei välttämättä nykyään tunnu missään. Usean megan pakettejehan nuo ns. oikeat sovellukset ovat.

Yleensä ottaen kuitenkin saa vääntää rivin jos toisenkin koodia, ennenkuin se käännettynä alkaa satoja kiloja viemään :-) Ei siis kannata siitä oman koodin koosta niin hirveästi välittää vielä alussa. Kokemuksen kautta tyyli paranee (parempi pitkä ja oikein kuin lyhyt ja väärin).

Dynaamisesta dll- tai so-linkkauksesta löydät tietoa kääntäjäsi manuaalista.

Grez [17.04.2007 15:21:57]

#

Azure kirjoitti:

Tietokoneen oma laskin: koko levyllä 4,00kt

Mitä oikein tarkoitat tietokoneen omalla laskimella? Jos tarkoitat Windowsin laskinta, niin ettet vain katsoisi nyt sen pikakuvakkeen levyltä viemää tilaa?

Kansio C:\WINDOWS\system32
15.09.2004  15:00           114 688 calc.exe

Yli 114 kt näyttäis olevan WinXP:ssä.

feenix [17.04.2007 16:36:44]

#

Grez kirjoitti:

Kansio C:\WINDOWS\system32
15.09.2004  15:00           114 688 calc.exe

Yli 114 kt näyttäis olevan WinXP:ssä.

<nipo>112 kilotavua kylläkin tuo vain on</nipo>

Ja tuo calcci ei käytä dynaamisesti kuin käyttöliittymäosia, C runtimen muutamia merkkijonofunkkareita, registrynlukufunktioita, About-funkkaria ja kernelin muistinvarausta, signaaliodotuksia jne. Mitään itse toiminnallisuutta se ei hae mistään ulkopuolelta.

Grez [17.04.2007 18:59:47]

#

feenix kirjoitti:

<nipo>112 kilotavua kylläkin tuo vain on</nipo>

Ei, kyllä se on reilu 114 kilotavua, eli tasan 112 binäärikilotavua.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta