小编bwb*_*ker的帖子

有没有自动生成Anorm解析器组合器的工具?

我刚刚开始使用Anorm和解析器组合器.似乎有很多样板代码.例如,我有

case class Model(
    id:Int,
    field1:String,
    field2:Int,
    // a bunch of fields omitted
)

val ModelParser:RowParser[RegdataStudentClass] = {
  int("id") ~
  str("field1") ~
  int("field2") ~
  // a bunch of fields omitted
  map {
    case id ~ field1 ~ field2 //more omissions
        => Model(id, field1, field2, // still more omissions
           )
  }
}
Run Code Online (Sandbox Code Playgroud)

在定义整个事物之前,每个数据库字段重复四(!)次.似乎解析器应该能够从case类中半自动推导出来.建议减少此处涉及的工作的任何工具或其他技术?

谢谢你的任何指示.

playframework anorm

12
推荐指数
1
解决办法
1346
查看次数

用〜运行sbt高CPU使用率

在我看来,SBT只是在观察文件更改时占用了过多的CPU时间.我知道这篇文章,但作者认为IDE CPU时间与SBT cpu时间相混淆; 我没有运行IDE.

我正在Scala中开发一个Play项目,大约有370个scala文件,分为5个模块.

使用~run运行sbt会占用我的MacBook Pro上大约70-90%的CPU(2012年中).我没有运行IDE,我没有编辑任何文件,没有浏览器访问服务器......根据Activity Monitor,只需使用〜运行(并观察文件系统)占用70-90%的CPU.

看着它闲置了一段时间后我启动了VisualVM; 它显示了自己和另一个JVM进程:

VisualVM概述

有关xsbt进程的详细信息(每个VisualVM):

PID: 56661
Host: localhost
Main class: xsbt.boot.Boot
Arguments: -Dhttp.port=9001 -Dhttps.port=9443 -Djsse.enableSNIExtension=false -Dhazelcast.config=conf/hazelcast-dev.xml -Dlogger.file=conf/logback-dev.xml -Dconfig.file=conf/passwords/local-dev.conf

JVM: Java HotSpot(TM) 64-Bit Server VM (25.121-b13, mixed mode)
Java: version 1.8.0_121, vendor Oracle Corporation
Java Home: /Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/jre
JVM Flags: <none>

Heap dump on OOME: disabled
Run Code Online (Sandbox Code Playgroud)

JVM参数:

-Xms1024m
-Xmx1024m
-XX:ReservedCodeCacheSize=128m
-XX:MaxMetaspaceSize=256m
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
Run Code Online (Sandbox Code Playgroud)

以下是VisualVM中有关时间的详细信息:

CPU采样

80%的CPU使用率 - 以及大多数时间都在运行的风扇 - 合理而sbt是空闲的吗?看起来真的很高.任何降低战略的策略?

PS:当sbt刚出现在命令提示符下时(不看文件更改),Activity Monitor显示大约5%的CPU使用率.

PPS:我通常concurrentRestrictions in Global += Tags.limit(Tags.Test, 4)在我的构建文件中防止在测试期间有太多并发数据库连接.我不确定这实际上是否符合我的想法.上面的统计数据是用该行注释掉的.当我恢复它时,活动监视器仍然报告~80%的CPU使用率,但在CPU样本中idleAwaitWork根本没有出现并且在它后面ConcurrentRestrictions$$anon$4.take占据首位SourceModificationWatch$.watch …

performance scala sbt playframework

8
推荐指数
1
解决办法
472
查看次数

Scala.js stacktraces

当我的Scala.js代码抛出异常时,我对无法理解的堆栈跟踪感到沮丧.我以为我有一个使用Javascript库的解决方案(请参阅获取scala堆栈跟踪),但它经常中断.

如何做提取含义(方案打破了这里;它是如何到达那里-在Scala代码而言)从类似下面的堆栈跟踪.或者我做错了甚至得到一个未翻译的堆栈跟踪?

示例Scala.js stacktrace

scala.js

6
推荐指数
1
解决办法
282
查看次数

标签 统计

playframework ×2

anorm ×1

performance ×1

sbt ×1

scala ×1

scala.js ×1