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

423

    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. Martinan aussikulta, missä?

      Mihin katosi Martina Aitolehden aussikulta kyselee Seiska!
      Kotimaiset julkkisjuorut
      377
      2289
    2. Haluaisin sun kanssa yhteisen

      Elämän. Haluun sut.
      Ikävä
      58
      1681
    3. Helena Koivu menettänyt lapsensa. Onko Mikko Koivulla oma laki?

      Voiko olla totta että äidiltä viedään lapset ja ei mitään syytä ole edes kerrottu äidille itselleen.?
      Kotimaiset julkkisjuorut
      171
      1415
    4. Pikkunaiselle terkkuja

      Olet parasta koko maailmassa! Kaikkein ihmeellisin. Olisitpa täällä. 🧡 harmaasusi
      Ikävä
      277
      1209
    5. Voisiko olla jopa niin

      Että kumpikin vähän pelkää totaalista heittäytymistä, koska tiedetään että se olisi menoa sen jälkeen. Samaan aikaan hal
      Ikävä
      67
      979
    6. Pystyisitkö ottamaan kaivattuasi

      Elämääsi miten pian
      Ikävä
      86
      975
    7. Varkaita kuhmossa

      Miksi kuhmolaiset ei tee mitään varkaille ja huumehörhöille, teloittaa pitäisi kaikki.
      Kuhmo
      33
      943
    8. Arto Satonen ja kokoomus 2020: Poliittiset virkanimitykset ovat koruptiota

      2025: Kokoomus on junttaamassa Arto Satosta Kelan johtoon ohi pätevämpien hakijoiden. https://www.hs.fi/politiikka/art-
      Maailman menoa
      118
      930
    9. Saara Aalto ja Teemu Roivainen paljastivat yllätysuutisen: "Rakkaus kietoi meidän kohtalomme..."

      Oho! Ex-pari on palannut yhteen musiikin merkeissä. He tekevät Rakkaustarina-nimeä kantavan 20-vuotisjuhlakiertueen syks
      Suomalaiset julkkikset
      12
      896
    10. K&T: Harvinainen haastattelu: Susanna Laine avaa suhdetta Petri Nygårdiin: "Olin sinkku vuosia..."

      Susanna Laine ei ole kertonut suhteestaan Petri Nygårdiin (Petri Laurila) julkisuudessa juurikaan. Aktiivisesti sosiaali
      Suomalaiset julkkikset
      8
      866
    Aihe