Mistä johtuu, että aloittelijana minun komentorivi versio laskin:
https://www.ohjelmointiputka.net/keskustelu/
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ä!
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.
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ä.
Grez kirjoitti:
Kansio C:\WINDOWS\system32 15.09.2004 15:00 114 688 calc.exeYli 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.
feenix kirjoitti:
<nipo>112 kilotavua kylläkin tuo vain on</nipo>
Ei, kyllä se on reilu 114 kilotavua, eli tasan 112 binäärikilotavua.
Aihe on jo aika vanha, joten et voi enää vastata siihen.