by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Antonio Gelameris
    @toniogela_twitter
    a me la buona notizia pare cmq che la JVM supporterà tutta questa roba
    più che le modifiche di linguaggio
    Francesco Vasco
    @fvasco_gitlab
    si, concordo. La vera ciccia è ora
    Antonio Gelameris
    @toniogela_twitter
    sai com'é
    poi dataclass di kotlin e case class di Scala diventano facili da implementare
    e idem implementare gli AnyVal di scala
    Francesco Vasco
    @fvasco_gitlab
    ma il programmatore qudratico medio può dire che Java è in continua evoluzione
    Antonio Gelameris
    @toniogela_twitter
    Cmq la convergenza verso Scala/Kotlin é imbarazzante
    Francesco Vasco
    @fvasco_gitlab
    sarà meno doloro ìso abbandonarlo... :-X
    Antonio Gelameris
    @toniogela_twitter
    Kotlin o Java?
    :P
    Francesco Vasco
    @fvasco_gitlab
    :-)
    Antonio Gelameris
    @toniogela_twitter
    perché se sei preoccupato di Kotlin
    cazzo dovremmo dire noi scalisti?
    Francesco Vasco
    @fvasco_gitlab
    se Google dovesse decidere se buttare giù Java o Kotlin dalla torre Android , chi dovrebbe essere più preoccupato?
    Antonio Gelameris
    @toniogela_twitter
    Ma dici che senza Android Kotlin non avrà trazione per vivere da solo?
    cmq un po' ci stanno provando con Flutter
    Francesco Vasco
    @fvasco_gitlab
    la domanda è speculativa, Android a mio avviso è una bella garanzia
    Antonio Gelameris
    @toniogela_twitter
    Sicuro
    Francesco Vasco
    @fvasco_gitlab
    senza bhò... il vantaggio/svantaggio di Java è la retrocompatibilità
    Scala ha risolto alla radice il problema della retrocompatibilità :-p
    Antonio Gelameris
    @toniogela_twitter
    compatibilità?
    quale compatibilità?
    Francesco Vasco
    @fvasco_gitlab
    per assurdo Kotlin ha il problema della compatibilità con Java, per cui alcune cose sono "sospese" in attesa di capire come farle funzionare in Java
    Antonio Gelameris
    @toniogela_twitter
    hmm
    capisco
    Francesco Vasco
    @fvasco_gitlab
    concordo
    Matteo Mortari
    @tarilabs
    ma infatti abbiamo sviscerato tutti i flames nella discussione penso :)
    Francesco Vasco
    @fvasco_gitlab
    per concludere la settimana in bellezza, un video a bassa risoluzione :-)
    https://www.youtube.com/watch?v=u1ZB_rGFyeU
    Angelo Giuseppe De Michele
    @cerebro84
    Ragazzi mi sarò perso qualche mail ma non trovo il link per la diretta di oggi, qualcuno me lo passa?
    Angelo Giuseppe De Michele
    @cerebro84
    OK, è comparso il live sul youtube del jug torino
    Andrea Peruffo
    @andreaTP

    Amicici del Jug Milano, buongiorno :-) oggi ho una domanda per voi esperti di GC:
    Usiamo in produzione il buon vecchio CMS di default di Java8, le applicazioni sono su Playframework e piuttosto affamate di memoria, guardando alla memoria usata negli ambienti di testing vedo che circa un 30% viene usato da Stringhe.
    Mi viene spontaneo mettere G1 con StringDeduplication, ma ogni volta che lo faccio, negli ambienti di testing tutto bene; invece in produzione con le macchine sotto carico G1 sembra non essere in grado di richiamare memoria andando a farmi schiantare le macchine (o con uso eccessivo di memoria o con uso eccessivo di CPU dovuto al GC).

    Idee? Gotcha comuni che mi sto trovando? Soluzioni che non involvono giocare con i GC in produzione?

    Francesco Nigro
    @franz1981
    "richiamare memoria andando a farmi schiantare le macchine (o con uso eccessivo di memoria o con uso eccessivo di CPU dovuto al GC)" > la string deduplication aggiunge lavoro di GC naturalmente, ma funziona solo qualora le Stringhe in questione vengono promosse...io consiglio di stampare la statistiche del GC per capire dove viene speso tale tempo da G1
    e possibilmente un bel giro di async-profiler per capire rispetto a tutto il tempo di CPU
    quanto incide il lavoro del GC
    Almeno io farei così :)
    In linea di massimo consiglio sempre di abilitare i log dettagliati in produzione del GC
    costa poco
    Francesco Nigro
    @franz1981
    e ti salva quando va male qualcosa, per capire che è successo...
    Andrea Peruffo
    @andreaTP

    In linea di massimo consiglio sempre di abilitare i log dettagliati in produzione del GC

    davvero non costa? allora lo faccio!

    io uso VisualVM di solito ma abilitare JMX in produzione mi scoccia molto :-( ed e' l'unico environment dove riesco a riprodurre i problemi :-(
    Francesco Nigro
    @franz1981
    Yep, usate <= java 8?
    In tal caso io abilito almeno questi
    -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -Xloggc:$ARTEMIS_INSTANCE/log/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M da sostituire -Xloggc con quello che ti serve
    e ogni tanto aggiungo anche altre cose per avere dettagli sui safepoints
    per le statistiche della string deduplication magari ha senso aggiungere anche -XX:+PrintStringDeduplicationStatistics ma forse sono già comprese...purtroppo non ne so molto perchè non la consigliamo ai customer
    Francesco Nigro
    @franz1981
    E ammetto di aver detto una castronata: la deduplicazione non avviene (solo) in fase di promozione..qui https://bugs.openjdk.java.net/browse/JDK-8046182 viene spiegato meglio come ès tata implementata
    Andrea Peruffo
    @andreaTP
    Grazie Francesco!!
    Francesco Nigro
    @franz1981
    Di nulla!
    Francesco Vasco
    @fvasco_gitlab