Javalla raskaita sovelluksia?

Tykäri

Onko kellään kokemusta? Miten hyvin java soveltuu raskaiden sovellusten tekoon? Tiedän, että javassa samantasoinen softa saattaa syödä esim. enemmän muistia kuin esmes c :ssa.

Minua ei kiinnosta mikään ybercyber 3d- grafiikkaa vaan sellainen raskas softa joka käyttää huikeita määriä tietoja.

5

518

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Nimimerkki

      Mä olen tehnyt softaa Javalla joka käyttää tietokantaa jossa on tällä hetkellä vähän vajaa tera tavaraa. Ei kai kuitenkaan kukaan aio softan sisällä pitää muistissa oikeasti "huikeaa määärää tietoa"? Millä tahansa kielellä koneen saa kyykkyyn jos oikein yrittää.

      Java ei ole (vielä) maailman paras valinta graafisten käyttöliittymien rakenteluun, natiivina softa pyörii ruudulla paremmin, ei pääse mihinkään. Mutta serverisoftan tekemisessä suorituksessa ei ole eroa, suurin ero löytyy kuitenkin penkin ja näppiksen välistä.

      Mulla on duunissa ylläpidettävänä aika heterogeeninen ympäristö (Solaris/Linux/Windows/OS2), joten Java on mulle aika helppo valinta.

      • jejjeja3

        Niin jos tietoa pitää käsitellä jatkuvasti jollain tavalla, niin silloin tietokanta on hidas joten muistissa ilmanmuuta niinpaljon kuin mahdollista. Riippuu mitä halutaan tehdä niin tietokannasta paljon tietoa jota käsitellään ja sit takasin kantaan, tätä toistetaan niin monesti kuin tarvis.

        Siis varsinaisesti tietomäärä ei ole ratkaiseva vaan mitä sillä tehdään.

        En asiasta mitään tiedä, mutta eiköstäs Java vaadi VM tai vastaavan, joten se on aina hitaampa kuin C jne... matalemman tason kielet. Nopeutta voi vertailla http://shootout.alioth.debian.org/

        Ja kyllä C on serveri jutuissakin nopeampi, mihkä se nopeusero muuttuisi?

        Toki Javalla on tietyt asiat helpompa ja nopeampi tehdä, ja usein nopeuserolla ei ole merkitystä.


      • Nimimerkki
        jejjeja3 kirjoitti:

        Niin jos tietoa pitää käsitellä jatkuvasti jollain tavalla, niin silloin tietokanta on hidas joten muistissa ilmanmuuta niinpaljon kuin mahdollista. Riippuu mitä halutaan tehdä niin tietokannasta paljon tietoa jota käsitellään ja sit takasin kantaan, tätä toistetaan niin monesti kuin tarvis.

        Siis varsinaisesti tietomäärä ei ole ratkaiseva vaan mitä sillä tehdään.

        En asiasta mitään tiedä, mutta eiköstäs Java vaadi VM tai vastaavan, joten se on aina hitaampa kuin C jne... matalemman tason kielet. Nopeutta voi vertailla http://shootout.alioth.debian.org/

        Ja kyllä C on serveri jutuissakin nopeampi, mihkä se nopeusero muuttuisi?

        Toki Javalla on tietyt asiat helpompa ja nopeampi tehdä, ja usein nopeuserolla ei ole merkitystä.

        Tietokannoissakin on välimuisti, jota pidetään keskusmuistissa, ei kannassa olevaa dataa tarvi aina levyltä lähteä hakemaan. Toki on himpun verran nopeampaa käyttää ohjelman omaa muistia, mutta tuota jättimäärää ei ole mitään järkeä pitää jatkuvasti ohjelman sisuksissa.

        Java tosiaan pyörii omassa virtuaalikoneessaan aina. Javan nopeutta on tutkittu aika paljon muihin kieliin verrattuna ja uusien virtuaalimasiinoiden yhteydessä on todettu ettei nopeuseroa juuri ole.

        Tottakai ohjelmasta saa nopeamman mitä alemman tason kielellä sen kirjoittaa, tuskin mikään nopeudessa voittaa esim suoraan assemblerilla naputettua, hyvin toteutettua softaa. Usein vaan moni sotkee Javan hitaudesta puhuessa virtuaalikoneen käynnistymiseen menevän ajan Java-ohjelman suorituksen hitaudeksi.


      • jejjeja3
        Nimimerkki kirjoitti:

        Tietokannoissakin on välimuisti, jota pidetään keskusmuistissa, ei kannassa olevaa dataa tarvi aina levyltä lähteä hakemaan. Toki on himpun verran nopeampaa käyttää ohjelman omaa muistia, mutta tuota jättimäärää ei ole mitään järkeä pitää jatkuvasti ohjelman sisuksissa.

        Java tosiaan pyörii omassa virtuaalikoneessaan aina. Javan nopeutta on tutkittu aika paljon muihin kieliin verrattuna ja uusien virtuaalimasiinoiden yhteydessä on todettu ettei nopeuseroa juuri ole.

        Tottakai ohjelmasta saa nopeamman mitä alemman tason kielellä sen kirjoittaa, tuskin mikään nopeudessa voittaa esim suoraan assemblerilla naputettua, hyvin toteutettua softaa. Usein vaan moni sotkee Javan hitaudesta puhuessa virtuaalikoneen käynnistymiseen menevän ajan Java-ohjelman suorituksen hitaudeksi.

        "Tietokannoissakin on välimuisti, jota pidetään keskusmuistissa, ei kannassa olevaa dataa tarvi aina levyltä lähteä hakemaan. Toki on himpun verran nopeampaa käyttää ohjelman omaa muistia, mutta tuota jättimäärää ei ole mitään järkeä pitää jatkuvasti ohjelman sisuksissa."

        Toki tietokannoissakin on erillaisia välimuisteja, mutta silti tietokannoista datan hakeminen on hidasta sillä aikaa menee kyselyn tulkitsemiseen jne... asioihin, siksi usein kannattavempaa hakea yhdellä kyselyllä paljon dataa kuin usealla vähemmän. Ja mitä tuohon teran kantaan tulee niin välimuistissa siitä on vain pieni osa, ne mitä kysytään usein. Ja useinkaan kaikkia tietoja ei tartte käsitellä vain pientä osaa niistä.


        "Java tosiaan pyörii omassa virtuaalikoneessaan aina. Javan nopeutta on tutkittu aika paljon muihin kieliin verrattuna ja uusien virtuaalimasiinoiden yhteydessä on todettu ettei nopeuseroa juuri ole."
        "Usein vaan moni sotkee Javan hitaudesta puhuessa virtuaalikoneen käynnistymiseen menevän ajan Java-ohjelman suorituksen hitaudeksi."

        Mikäli tuon linkittämäni sivun tiedot pitää paikkaansa niin C on noin ~2 kertaa nopeampi. Kyllä tuommoinen ~2 kertainen ero on merkittävä jos puhutaan ohjelmista jonka suorittaminen kestää minuutteja tai jopa tunteja. Pikku ohjelmissa tuommoinen ~2 kertanen ero on mitätön.


        "Tottakai ohjelmasta saa nopeamman mitä alemman tason kielellä sen kirjoittaa, tuskin mikään nopeudessa voittaa esim suoraan assemblerilla naputettua"

        Totta, mutta nykyaikana kääntäjät tekevät todella hyvää jälkeä, jotenka voipi käydä niin että Assemblerilla useimmat saa aikases paljon hitaampaa koodia.

        Mutta tärkeintä on kuitenkin, että kieli valitaan tarpeen mukaan, tietenkin omat taitonsa huomioiden.


      • Nimimerkki
        jejjeja3 kirjoitti:

        "Tietokannoissakin on välimuisti, jota pidetään keskusmuistissa, ei kannassa olevaa dataa tarvi aina levyltä lähteä hakemaan. Toki on himpun verran nopeampaa käyttää ohjelman omaa muistia, mutta tuota jättimäärää ei ole mitään järkeä pitää jatkuvasti ohjelman sisuksissa."

        Toki tietokannoissakin on erillaisia välimuisteja, mutta silti tietokannoista datan hakeminen on hidasta sillä aikaa menee kyselyn tulkitsemiseen jne... asioihin, siksi usein kannattavempaa hakea yhdellä kyselyllä paljon dataa kuin usealla vähemmän. Ja mitä tuohon teran kantaan tulee niin välimuistissa siitä on vain pieni osa, ne mitä kysytään usein. Ja useinkaan kaikkia tietoja ei tartte käsitellä vain pientä osaa niistä.


        "Java tosiaan pyörii omassa virtuaalikoneessaan aina. Javan nopeutta on tutkittu aika paljon muihin kieliin verrattuna ja uusien virtuaalimasiinoiden yhteydessä on todettu ettei nopeuseroa juuri ole."
        "Usein vaan moni sotkee Javan hitaudesta puhuessa virtuaalikoneen käynnistymiseen menevän ajan Java-ohjelman suorituksen hitaudeksi."

        Mikäli tuon linkittämäni sivun tiedot pitää paikkaansa niin C on noin ~2 kertaa nopeampi. Kyllä tuommoinen ~2 kertainen ero on merkittävä jos puhutaan ohjelmista jonka suorittaminen kestää minuutteja tai jopa tunteja. Pikku ohjelmissa tuommoinen ~2 kertanen ero on mitätön.


        "Tottakai ohjelmasta saa nopeamman mitä alemman tason kielellä sen kirjoittaa, tuskin mikään nopeudessa voittaa esim suoraan assemblerilla naputettua"

        Totta, mutta nykyaikana kääntäjät tekevät todella hyvää jälkeä, jotenka voipi käydä niin että Assemblerilla useimmat saa aikases paljon hitaampaa koodia.

        Mutta tärkeintä on kuitenkin, että kieli valitaan tarpeen mukaan, tietenkin omat taitonsa huomioiden.

        Tässähän tosiaan C :n ja Javan suoritusta voi verrata toisiinsa suoraan;
        http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=gpp&lang2=java

        Tulkatut tai virtuaalikoneessa suoritetut kielet tosiaan on hitaampia, ei siitä pääse mihinkään, mutta edelleen ero ei ole niin suuri kuin voisi odottaa. Ero on lähempänä 1,5:ttä kuin kahta (1.87/1.24 = 1.51). :) Silti jos joutuu odottamaan jokaista ohjelman suoritusta kolme päivää pidempään, jos ohjelma on tehty C:n sijaan Javalla, ehkä kannattaa harkita kielen vaihtoa. En usko että kovin montaa tuntiakaan jaksaisin odottaa pidempään... Edelleen tuo "startup"-aika on, kuten odotettua, valtavan paljon suurempi Javalla kuin C :lla. Mut kuitenkin yllätti että Python ja Ruby kellottaa noin huonoja aikoja.


        Siitä tietokannan käytöstä vielä. Tosiaan siihen, mitä tietoa kannattaa pitää ohjelmassa ja mitä tietokannassa riippuu täysin siitä mitä ohjelmaltaan haluaa. Tietoa ei todellakaan kannata hakea rivi kerrallaan omaan ohjelmaan käsiteltäväksi, mutta toisaalta tietoa voi säätää valmiiksi kannan omilla funktioilla ja toiminnallisuuksilla. Mun tapauksessa ainakin on niin, että tietokannan alla on rautaa ja potkua suorastaan järkyttävä määrä, kun taas softat pyörii paljon kevyemmillä koneilla. Mun tapauksessa on siis usein tehokkaampaa tai nopeampaa palauttaa kannasta valmiiksi muokattua dataa, tai pistää kanta muokkaamaan esikäsiteltyä tietoa, kuin tehdä kaikki omassa softassa. Esimerkiksi Sybasen tietokantoihin pystyy tekemään omia Java-luokkia tiedonkäsittelyä varten (ASE15:ssa tulee ihan normaalin lisenssin mukana). Mutta ei, mullakaan ei tietokannalla ole teraa keskusmuistia, vielä ainakaan. :)

        Mutta jos dataa joudutaan hakemaan levyltä, ohjelman nopeudella ei ole juuri merkitystä, softa odottelee kuitenkin levyhakua... Alkuperäiseen kysymykseen voisi kuitenkin vielä sanoa että Javalla voi ihan mainiosti tehdä järeitä tietomääriä käsitteleviä ohjelmia. Softan nopeus ja tehokkuus on edelleen paljon enemmän riippuvainen penkin ja näppiksen välissä hääräävästä jampasta kuin siitä millä kielellä ohjelma on toteutettu.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Vain vasemmistolaiset rakennemuutokset pelastavat Suomen

      Kansaa on ankeutettu viimeiset 30+ vuotta porvarillisella minäminä-talouspolitiikalla, jossa tavalliselta kansalta on ot
      Maailman menoa
      77
      3646
    2. Persut huutaa taas: "kato! muslimi!"

      Persut on lyhyessä ajassa ajaneet läpi kaksi työntekijöiden oikeuksien heikennystä, joita se on aiemmin vastustanut. Pe
      Maailman menoa
      33
      2999
    3. onko kaivattusi

      vaarallinen? :D
      Ikävä
      78
      2761
    4. Menen nyt koisimaan

      Ja en ehkä palaa tänne. Asia on nyt loppuunkäsitelty ja totuus tuli ilmi
      Ikävä
      28
      2654
    5. Haluaisin rakastaa sinua

      Ja olla sinulle se oikea... Rakastan sinua 💗💗💗
      Ikävä
      19
      2485
    6. Olisiko sinulla

      Jonossa vaihtoehtoja, ehkä
      Ikävä
      52
      2312
    7. Pieni galluppi

      Mitäs lahjaa odotat joulupukilta.
      Ikävä
      57
      1947
    8. Mitä tuntemuksia

      Rakkaasi ääni herättää?
      Ikävä
      15
      1822
    9. Oletko uhriutuja?

      vaikka itse olet rääkännyt toista ja aiheuttanut ties mitä toiselle.
      Tunteet
      58
      1776
    10. KL: Mari Hynynen avoimena - Jouni-rakkaan ja Joel-pojan välit ovat nämä!

      Mari Hynynen (ent. Perankoski) on naimisissa Jouni Hynysen kanssa. Marilla on edellisestä liitosta yksi lapsi, Joel Vola
      Suomalaiset julkkikset
      11
      1683
    Aihe