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

532

    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. Veroaste on Suomessa viitisen prosenttiyksikköä liian matala

      Veropohjaa on rapautettu käytännössä koko kulunut vuosituhat, jonka vuoksi valtion menoja on jouduttu rahoittamaan velka
      Maailman menoa
      83
      2475
    2. Tiedän satavarmasti ettet tule koskaan

      Uskaltamaan mitään. Ei me tulla edes näkemään koskaan.
      Ikävä
      67
      1435
    3. Kyläkauppias ajoi kännissä töistä kotiin

      Ei edes kallis auto estä humalassa ajamista, vaikka luulisi alkolukko olevan sellaisessa jo vakiovarusteena. https://ww
      Maailman menoa
      81
      1311
    4. EU komissio - EU-elpymisrahoja voidaan käyttää TILAPÄISESTI väärin!

      Espanja ohjasi miljardeja euroja – Nyt EU-komissio teki yllättävän paljastuksen Skandaaliksi noussut Espanjan EU-rahoje
      Maailman menoa
      11
      1192
    5. Miks me oikein

      Rakastuttiin vaikka kaikki on mahdotonta?
      Ikävä
      79
      905
    6. Kiitos upeasta palvelusta kukkamyyjä

      Kiitos sinulle upea kaunis kukkamyyjä Kuhmon torilla 🌹 Upea iloinen asenteesi ja kaunis hymysi pelasti päiväni ❤️ Jäi
      Kuhmo
      19
      890
    7. Nainen, mikset lähetä

      miehelle viestiä? Tiedän, että sulla on asiaa ja kysyttävää.
      Ikävä
      54
      763
    8. Ratikka Turkuun

      Ei hyvä. Ja syy on siinä , kukaan ei osaa suunnitella oikeaa reittiä. Pitää huomioide, kiskoja sijaintia ei voi muutta
      Turku
      100
      749
    9. Miehet trikoissaan

      On se kauhian näkköistä, kun miehet tiukossa trikkoissa juoksentelloo ja mulukku paestaa trikkoijjen läpi. Kahtokkee pe
      Suomussalmi
      30
      743
    10. Rakastan sinua

      Yhä.
      Ikävä
      30
      696
    Aihe