Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Jorge
    @jvican
    @elyphas La mayoría de las veces el compilador es rápido.
    Pero primero tienes que calentarlo, es decir, tener siempre una instancia de sbt o del compilador en el background.
    @jlprat La razón por la que el compilador es lento no son implicitos, sino que es más fundamental a la arquitectura y la complejidad del lenguaje.
    De hecho, la búsqueda de implicitos es muy rápida (en el orden de ms). El problema es cuando la gente abusa implicitos y macros, y utiliza librerías como shapeless.
    elyphas
    @elyphas
    habia sido rapido hasta que crecio el proyecto, pero ahora empieza rapido y conforme se hacen modificaciones se va haciendo lenta la maquina.
    Jorge
    @jvican
    Cuántas líneas?
    Y cual es el total del tiempo de compilación?
    Josep Prat
    @jlprat
    @jvican a eso me refería, al abuso de implicitos, e.g. shapeless
    Jorge
    @jvican
    Sí, pero ten en cuenta que no es sólo el abuso de implicitos, si no el hecho de que hay macros que son ejecutadas por los implícitos
    No existe tal cosa como abuso de implicitos que haga el compilador lento sin la existencia de macros :)
    Josep Prat
    @jlprat
    cierto
    he simplificado mucho 😂
    Josep Prat
    @jlprat
    @elyphas que librerías usas en el proyecto?
    puede ser, por ejemplo, threads que se han quedado colgados de ejecuciones previas de los threads?
    elyphas
    @elyphas
     object versions {
        val scala = "2.11.11"
        val scalaDom = "0.9.2"
        val scalajsReact = "1.0.1"
        val scalaCSS = "0.5.3"
        val log4js = "1.4.10"
        val autowire = "0.2.6"
        val booPickle = "1.2.6"
        val diode = "1.1.2"
        val uTest = "0.4.7"
    
        val react = "15.5.4"
        val jQuery = "1.11.1"
        val bootstrap = "3.3.6"
        val chartjs = "2.1.3"
    
        val scalajsScripts = "1.0.0"
      }
    
      /**
       * These dependencies are shared between JS and JVM projects
       * the special %%% function selects the correct version for each project
       */
      val sharedDependencies = Def.setting(Seq(
        //"org.scala-js" % "scalajs-java-time_sjs0.6_2.11" % "0.2.0",
        "com.lihaoyi" %%% "autowire" % versions.autowire,
        "io.suzaku" %%% "boopickle" % versions.booPickle,
        //"org.scala-js" % "scalajs-java-time_sjs0.6_2.11" % "0.2.0",
        "org.scalaz" % "scalaz-core_2.11" % "7.2.13"
      ))
    
      /** Dependencies only used by the JVM project */
      val jvmDependencies = Def.setting(Seq(
        "com.vmunier" %% "scalajs-scripts" % versions.scalajsScripts,
        "org.webjars" % "font-awesome" % "4.3.0-1" % Provided,
        "org.webjars" % "bootstrap" % versions.bootstrap % Provided,
        "com.lihaoyi" %% "utest" % versions.uTest % Test,
        "com.typesafe.play" %% "play-jdbc-api" % "2.5.3",
        "com.typesafe.slick" %% "slick" % "3.2.1",
    
        //"com.typesafe.slick" %% "slick-hikaricp" % "3.1.0",
        "com.typesafe.slick" % "slick-hikaricp_2.11" % "3.2.1",
    
        "com.typesafe.play" %% "play-slick" % "2.0.2",
        //"com.typesafe.play" %% "play-slick" % "3.0.0",
        "com.typesafe.play" %% "play-slick-evolutions" % "2.1.0",
        //"com.typesafe.play" %% "play-slick-evolutions" % "2.0.0",
        "org.postgresql" % "postgresql" % "9.4-1206-jdbc42",
        "com.chuusai" %% "shapeless" % "2.3.1",
        "io.underscore" %% "slickless" % "0.3.2"
      ))
    
      /** Dependencies only used by the JS project (note the use of %%% instead of %%) */
      val scalajsDependencies = Def.setting(Seq(
        "org.scala-js" % "scalajs-java-time_sjs0.6_2.11" % "0.2.0",
        "com.github.japgolly.scalajs-react" %%% "core" % versions.scalajsReact,
        "com.github.japgolly.scalajs-react" %%% "extra" % versions.scalajsReact,
        "com.olvind" %%% "scalajs-react-components" % "0.7.0",
        "com.github.japgolly.scalacss" %%% "ext-react" % versions.scalaCSS,
        "io.suzaku" %%% "diode" % versions.diode,
        "io.suzaku" %%% "diode-react" % versions.diode,
        "org.scala-js" %%% "scalajs-dom" % versions.scalaDom,
        "com.lihaoyi" %%% "utest" % versions.uTest % Test,
        "com.github.japgolly.scalajs-react" %%% "ext-scalaz72" % "1.0.1"
      ))
    
      /** Dependencies for external JS libs that are bundled into a single .js file according to dependency order */
      val jsDependencies = Def.setting(Seq(
        "org.webjars.bower" % "react" % versions.react / "react-with-addons.js" minified "react-with-addons.min.js" commonJSName "React",
        "org.webjars.bower" % "react" % versions.react / "react-dom.js" minified "react-dom.min.js" dependsOn "react-with-addons.js" commonJSName "ReactDOM",
        "org.webjars.bower" % "pdfmake" % "0.1.31" / "pdfmake.js" minified "pdfmake.min.js" commonJSName "pdfmake",
        //"org.webjars.bower" % "pdfmake" % "0.1.31"
        "org.webjars" % "jquery" % versions.jQuery / "jquery.js" minified "jquery.min.js",
        "org.webjars" % "bootstrap" % versions.bootstrap / "bootstrap.js" minified "bootstrap.min.js" dependsOn "jquery.js",
        //"org.webjars" % "chartjs" % versions.chartjs / "Chart.js" minified "Chart.min.js",
        "org.webjars" % "log4javascript" % versions.log4js / "js/log4javascript_uncompressed.js" minified "js/log4javascript.js"/*,
        "org.webjars.bower" % "js-xlsx" % "0.10.8" / "dist/xlsx.js" minified "dist/xlsx.min.js"*/
      ))
    }
    Jorge
    @jvican
    A juzgar por tus dependencias, el culpable será shapeless.
    Pero sin más información poco se puede decir.
    SI me dices tiempo de compilacion (cuando ya has compilado 5 veces antes) y lineas de código, te puedo decir si es culpa del compilador o no.
    https://github.com/cgag/loc <- por si quieres contar
    elyphas
    @elyphas
    @jvican ; ok thank you
    jaja disculpa
    no recuerdo bien pero como 34s, y ya despues de unas 5 compiladas, se empieza a poner lenta la maquina.
    ahorita voy ha ver como uso https://github.com/cgag/loc
    Jorge
    @jvican
    dime numeros exactos y te puedo contestar de forma precisa :P
    por cierto, para que utilizas shapeless?
    elyphas
    @elyphas
    una ocasion intente usar validacion, pero creo que no termine, ya no se si usarla, voy ha comentar esa linea, gracias por la observacion.
    Josep Prat
    @jlprat
    si no la usas, no deberia afectar a los tiempos de compilacion
    por cierto, compilas solamente or tambien ejecutas los tests?
    Gabriel Claramunt
    @gclaramunt
    slick y autowire no usan macros tambien? se me ocurre que scalajs tambien puede enlentecer, pero si en cada pasada va mas lento, hay algo muy raro...
    Germán Ferrari
    @gerferra
    ¿No será que tiene configurado sbt para que use mucha memoria?
    Jorge
    @jvican
    Yo diría que es para que use poca memoria, pero si no dice más detalles sobre su proyecto cualquier suposición está destinada al fracaso
    Josep Prat
    @jlprat
    Antes de ver las dependencias, pensava que podía ser ActorSystems que no son terminados correctamente y se quedan consumiendo recursos. Pero no veo Akka en sus dependencias, así que...
    elyphas
    @elyphas
    disculpas, ayer estuve enfermo,
    intente tambien con "sbt -mem 2048" pero me dio el mismo problema
    me dijeron en el canal scala ingles, que podría ser sbt 0.13.15, que actualizara, y estoy ahorita con problemas en las dependencias, por que
    tuve que actualizar a play 2.6.11, y no como darle
    y ejecute pero no entiendo mucho la grafica, puedo enviar un archivo a traves del canal?
    por que esta herramienta puede generar un archivo .odt
    en estos momentos: tengo estos errores:

    [error] application -

    ! @774cd325d - Internal server error, for (GET) [/] ->

    play.api.UnexpectedException: Unexpected exception[NoSuchMethodError: play.api.Logger.debug(Lscala/Function0;)V]
    at play.core.server.DevServerStart

    KaTeX parse error: Unexpected character: '$' at position 7: anonfun̲$mainDev$1: anonfun$mainDev$1
    anon$1.reload(DevServerStart.scala:190)
    at play.core.server.DevServerStart
    KaTeX parse error: Unexpected character: '$' at position 7: anonfun̲$mainDev$1: anonfun$mainDev$1
    anon$1.get(DevServerStart.scala:124)
    at play.core.server.AkkaHttpServer.play$core$server$AkkaHttpServer
    KaTeX parse error: Unexpected character: '$' at position 85: HttpServer.play̲$core$server$A: modelConversion(AkkaHttpServer.scala:183)
        at play.core.server.AkkaHttpServer.play$core$server$AkkaHttpServer
    handleRequest(AkkaHttpServer.scala:189)
    at play.core.server.AkkaHttpServer
    KaTeX parse error: Unexpected character: '$' at position 7: anonfun̲$5.apply(AkkaH: anonfun$5.apply(AkkaHttpServer.scala:106)
        at play.core.server.AkkaHttpServer
    anonfun$5.apply(AkkaHttpServer.scala:106)
    at akka.stream.impl.fusing.MapAsync
    KaTeX parse error: Unexpected character: '$' at position 4: anon̲$23.onPush(Ops: anon$23.onPush(Ops.scala:1172)
        at akka.stream.impl.fusing.GraphInterpreter.processPush(GraphInterpreter.scala:499)
        at akka.stream.impl.fusing.GraphInterpreter.processEvent(GraphInterpreter.scala:462)
        at akka.stream.impl.fusing.GraphInterpreter.execute(GraphInterpreter.scala:368)
    Caused by: java.lang.NoSuchMethodError: play.api.Logger.debug(Lscala/Function0;)V
        at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get$lzycompute(SlickApi.scala:84)
        at play.api.db.slick.DefaultSlickApi$DatabaseConfigFactory.get(SlickApi.scala:82)
        at play.api.db.slick.DefaultSlickApi
    anonfun$allDbConfigs$1.apply(SlickApi.scala:61)
    at play.api.db.slick.DefaultSlickApi
    KaTeX parse error: Unexpected character: '$' at position 7: anonfun̲$allDbConfigs$: anonfun$allDbConfigs$1.apply(SlickApi.scala:61)
        at scala.collection.TraversableLike
    anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
    at scala.collection.immutable.Map$Map2.foreach(Map.scala:137)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
    at scala.collection.AbstractTraversable.map(Traversable.scala:104)
    at play.api.db.slick.DefaultSlickApi.allDbConfigs$lzycompute(SlickApi.scala:61)

    elyphas
    @elyphas
    Por cierto si uso akka
    Josep Prat
    @jlprat
    Usas Akka indirectamente creo, puesto que Play usa Akka "under the hood"
    Germán Ferrari
    @gerferra
    Podés monitorear las jvm que vayas levantando con jmc y ver si te queda algo colgado
    Ignasi Marimon-Clos
    @ignasi35
    @elyphas creo que hay varias cosas a resolver: (1) el update de Play y (2) el update de sbt. Para (1) mejor mírate las migration guides de la documentación. Asegúrate de migrar primero a la última minor de tu major antes de migrar de major: si estás en 2.4.7 de play, pásate primero a 2.4.x (la última de 2.4), luego de ahí pásate a la última de 2.5.x y luego a 2.6.11. Si sigues esos pasos el cambio (2) de versión de sbt no debería darte problema.
    Para tu problema original, puede que haya varias causas pero una conocida en el mundo de Play es: leak de memoria cuando tienes Play en DevMode (logback, slog4j, tu código…).
    Cuando dices que la máquina se vuelve lenta, qué estás ejecutando? Solo sbt > ~compile o tienes my-play-project> run? (el primero es solo sbt con scalac recompilando cambios, el segundo levanta y ejecuta toda tu app)
    Josep Prat
    @jlprat
    levanta tu app! Muy fan! :D
    Cada dia que pasa soy mas incapaz de hablar de cosas tecnicas en castellano
    elyphas
    @elyphas
    @ignasi35 , si acabo de migrar a sbt 1.1.1 y play 2.6.11, tuve varios problemas con las dependencias pero ya se resolvio,
    @ignasi35 ; sbt run
    @jlprat ; pense que eras aleman, :)