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

449

    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. Poliisi: Kymmenhenkinen pohjalaisperhe ollut vuoden kateissa kansainvälinen etsintäkuulutus Poliis

      Poliisi: Kymmenhenkinen pohjalaisperhe ollut vuoden kateissa – kansainvälinen etsintäkuulutus Poliisi pyytää yleisön apu
      Maailman menoa
      271
      2300
    2. En kadu sitä, että kohtasin hänet

      mutta kadun sitä, että aloin kirjoittamaan tänne palstalle. Jollain tasolla se saa vain asiat enemmän solmuun ja tekee n
      Ikävä
      83
      1011
    3. Oisko mitenkään mahdollisesti ihan pikkuisen ikävä..

      ...edes ihan pikkuisen pikkuisen ikävä sulla mua??.. Että miettisit vaikka vähän missähän se nyt on ja oiskohan hauska n
      Ikävä
      55
      979
    4. Mitään järkeä?

      Että ollaan erillään? Kummankin pää on kovilla.
      Ikävä
      108
      970
    5. Noniin rakas

      Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi
      Ikävä
      81
      921
    6. Lapuan sanomissa käy rytinä

      Pistivät sitten päätoimittajan pihalle
      Lapua
      44
      861
    7. Au pair -työ Thaimaassa herättää kiivasta keskustelua somessa: "4cm torakoita, huumeita, tauteja..."

      Au pairit -sarjan uusi kausi herättää keskustelua Suomi24 Keskustelupalvelussa. Mielipiteitä ladataan puolesta ja vastaa
      Tv-sarjat
      21
      838
    8. Helena Koivu : Ja kohta mennään taas

      Kohta kohtalon päivä lähestyy kuinka käy Helena Koivulle ? Kenen puolella olet? Jos vastauksesi on Helenan niin voisi
      Kotimaiset julkkisjuorut
      67
      736
    9. Oot ihana

      Toivottavasti nähdään sattumalta jonain kesäpäivänä♥️🥺🫂
      Ikävä
      33
      687
    10. Tässä totuus jälleensyntymisestä - voit yllättyä

      Jumalasta syntyminen Raamatussa ei tässä Joh. 3:3. ole alkukielen mukaan ollenkaan sanaa uudestisyntyminen, vaan pelkä
      Jälleensyntyminen
      299
      684
    Aihe