Voiko täällä keskustella sodattomasti, käyttöjärjestelmästä riippumattomasti?
Itse olen koodarina oppinut sen, ettei edes nykyiset tietokoneet ole tehokkaita. Jos ajattelen vapaasti, että toiminto tehdään konetehosta välittämättä, ohjelmasta tulee aina hidas paska, ellei ohjelma ole sitten äärimmäisen yksinkerainen!
Sen olen oppinut, ettei edes nykyisen PC:t ole tehokkaita, vaan samanlaisia etanoita kuin 1990-luvun PC:t! Kaikki toiminnot pitää miettiä tarkkaan!
Jos olet opiskelemassa koodariksi, helppo sääntö on:
Näytä käyttäjälle vain tieto minkä hän tarvitsee nähdä, älä lataa tai näytä muuta tietoa! Kun käyttäjä haluaa seuraavaa tietoa, sitten vasta näytä/lataa se tieto mitä hän VOI nähdä, and next, and next ->
Mutta kuin oli eka PC:ni Pentium 90Mhz vuonna 1995, ovat nykyajan koneet melkeinpä samaa luokkaa tehoiltaan, jos ihminen alkaa latelemaan vapaasti tehtäviä koneelle, heh!
Itse olen koodarina oppinut sen, ettei edes nykyiset tietokoneet ole tehokkaita. Jos ajattelen vapaasti, että toiminto tehdään konetehosta välittämättä, ohjelmasta tulee aina hidas paska, ellei ohjelma ole sitten äärimmäisen yksinkerainen!
Sen olen oppinut, ettei edes nykyisen PC:t ole tehokkaita, vaan samanlaisia etanoita kuin 1990-luvun PC:t! Kaikki toiminnot pitää miettiä tarkkaan!
Jos olet opiskelemassa koodariksi, helppo sääntö on:
Näytä käyttäjälle vain tieto minkä hän tarvitsee nähdä, älä lataa tai näytä muuta tietoa! Kun käyttäjä haluaa seuraavaa tietoa, sitten vasta näytä/lataa se tieto mitä hän VOI nähdä, and next, and next ->
Mutta kuin oli eka PC:ni Pentium 90Mhz vuonna 1995, ovat nykyajan koneet melkeinpä samaa luokkaa tehoiltaan, jos ihminen alkaa latelemaan vapaasti tehtäviä koneelle, heh!
Vastaukset 10
Vanhimmat
Tämänpäivän koodarit ovat pääosin äärimmäisen laiskoja, valtaosa ohjelmista on täysin optimoimattomia tehottomia sontaläjiä jotka tuhlaavat tietokoneen tehosta suurimman osan. Täysin vastaava ohjelma joka vuosia sitten pyöri vaivattomasti 33Mhz 486 prosessorilla ei tänäpäivänä toimi kunnolla 300Mhz pentiumilla eli 10 kertaa tehokkaammalla koneella.... Eli yli 90% koneen tehosta tuhlataan surkean koodin takia.
Lähes kaikilla koodareilla on sama asennevika, miksi optimoida koodia kun nykyisissä koneissa riittää teho pyörittää sitä optimoimatonta sontaläjääkin ongelmitta ja jos ei teho riitä niin käyttäjä ostakoon uuden tehokkaamman koneen.
En ole ammattikoodari vaikka osaankin yksinkertaisia ohjelmia tehdä niin PC:lle kuin Androidille ja ensimmäinen PC oli 4,7Mhz 8088 prosessorilla.
"Jos ajattelen vapaasti, että toiminto tehdään konetehosta välittämättä, ohjelmasta tulee aina hidas paska, ellei ohjelma ole sitten äärimmäisen yksinkerainen!"
Juuri näin, "toiminto tehdään konetehosta välittämättä" ...... opetelkaa vätykset edes se alkeellisin koodin optimointi älkääkä urputtako tehonpuutteesta.
Itse pidän suurpimana syynä nykyisiä kehitystyökaluja.
Ja nämä kehitystyökalut sitten tekee koodareista laiskoja.
Windowsilla tuntuu olevan se örkintorjunta priorisoitu ykköseksi ja käyttäjän softia ajetaan jos sattuu jäämään aikaa.
Toisaalta, oikeassakin järjestelmässä se optimointi maksaa ja rauta on entistä halvempaa joten hyvin usein tulee saman kustannustason saavuttamisessa halvemmaksi ostaa uusi kone kuin ryhtyä softan parantamiseen.
Koska mulla on vaan neliydinkone ja tunsin debianin tässä liian hitaaksi niin irroitin cpu:n ja keittiön pöydällä annoin sille kunnon iskun piparkakkumuotilla niin siitä tulikin 8 piparkakku-ukon muotoista cpu:ta ja jokainen voi helposti päätellä että 8 piparkakku-ukkoa pystyy ajattelemaan enemmän samassa ajassa kuin joku 4-ydin-kikkare.
Eli koneen raudan parantelu nosti tehoja heti yli puolet, suosittelen kokeilemaan jos win7 tuntuu hitaammalta kuin mitä luvattiin, kaupassa tai verkossa tai missä vaan.
Optimointi maksaa mutta kun koodia väännettäessä ei osa koodareista ajattele nykyisin yhtään sen koodin tehokkuutta, monesti muutaman sekunnin alkeellinen ajattelu koodausvaiheessa ja järkevien toteutustapojen käyttö vähentäisi jo ohjelman aiheuttamaa prosessorikuormaa kymmeniä prosentteja ilman sen kummempaa optimointiakin.
Joskus sen vähemmän tehoa vaativan toteutustavan käyttö lisäisi koodarin työtä vähän eli koodia tulisi hieman enemmän, arvaa kumman toteutustavan nykypäivän vätykset valitsevat. Sen jossa koodia tarvitaan muutama rivi vähemmän, hälläväliä jos se toteutustapa vie 10-40% enemmän prosessoritehoa kunhan vätys vaan ei joudu kirjoittamaan riviäkään "ylimääräistä" koodia. Tuohon asenteeseen olen törmännyt monen "ammatti"koodarin kohdalla, ammattilaisiksi en noita vätyksiä suostu kutsumaan vaikka työkseen koodia vääntävätkin.
Avoimen koodin ohjelmia väsää yhteisöt talkoilla hii'o hoi! Joukkovoimassa ei ole voimaa kun ohjelmat niin kehnoja, kaupallisten yritysten ohjelmat parempia!
>...kaupallisten yritysten ohjelmat parempia!
Kokeilepa Microsoftin ohjelmia niin huomaat miten "hyviä" ne on. ;)
Apache, tuo mitäänsanomaton talkootöinä väsäilty projekti jolle kukaan ei keksi mitään käyttöä eikä se edes toimi windowsissa?
Ohjelmointia työkseni tekevänä tiedän sanoa sen, että suorituskyky ei ole tärkein asia. Tärkein asia ohjelmalla on se, että se TOIMII. Kaikki muut asiat ovat toissijaisia.
Toisekseen, tietokoneohjelmistot ovat usein hyvin pitkäikäisiä. On usein tärkeämpää tehdä ohjelma kestämään kuin tehdä se nopeaksi, koska on kallista kirjoittaa se ohjelma uusiksi kun maailma vähän muuttuu ympärillä.
Hyvänä esimerkkinä on Javaohjelmat. Oli aikoinaan ja on vieläkin erinomainen vaihtoehto jos haluaa ohjelman kestävän. Laitearkkitehtuurit, käyttöjärjestelmät yms. voi vaihtua moneen kertaan mutta ohjelma TOIMII tai ainakin on ylläpidettävissä pienen muutoksin.
Ja suorituskyky? No, sehän on parantunut javaohjelmilla kokoajan. Java on uudistunut parin vuoden välein ja nopeutta tullut paljon uusissa versioissa, ohjelmaa kun kehitetään vuosikymmeniä niin se tulee luotettavammaksi ja nopeammaksi ja rautakin on kehittynyt. Suorituskyky ei yksinkertaisesti ole mikään ongelma.
Ja jos ongelmia onkin suorituskyvyssä, niin se on nykyisin yleensä jollain yhdellä osa-alueella, esim. tietokantakäsittelyssä. Sulautetut ja muut laiteläheiset sitten erikseen.