小编hus*_*hai的帖子

如何在JMH中初始化每次调用的数据?

我正在尝试创建修改集合的基准.问题是我不知道如何为每次调用初始化数据.

假设Test.DATA是一个包含200个元素的集合.
test方法根据a.isTrue()值来删除数据.
我知道这@Setup与JUnit类似@Setup.我想用,@Before 但我在JMH找不到一个.如何在test调用方法之前每次初始化数据?
非常感谢你提前.

@State(Scope.Thread)
public class JavaCollectionBenchmark {

    List<Foo> cols;

    @Setup
    public void prepare(){
        cols= new ArrayList<>(Test.DATA);
    }

    @Benchmark
    public long test(){
        if(cols.size() != 200) {
            System.out.println("SECOND TIME DOESN'T WORK!");
            System.exit(0);
        }else{
            System.out.println("FIRST TIME");
        }
        cols.removeIf(a-> a.isTrue());
        return cols.size();
    }
}
Run Code Online (Sandbox Code Playgroud)

java jmh

9
推荐指数
1
解决办法
2052
查看次数

没有为scala.slick.lifted.ColumnOrdered [Long]定义任何隐式排序。

我正在通过播放插件使用Slick 2.0,以下是我的表映射

class Tasks(tag: Tag) extends Table[Task](tag, "Tasks"){
    def id   = column[Option[Long]]("id", O.PrimaryKey, O.AutoInc)
    def txt  = column[String]("txt")
    def done = column[Boolean]("done")
    def * = (id, txt, done) <> (Task.tupled, Task.unapply)
}
Run Code Online (Sandbox Code Playgroud)

然后,我像这样创建了TableQuery对象

val tasks = TableQuery[Tasks]

我曾经tasks.list得到List[Task]哪个返回正确,但是当我想通过使用对结果进行排序时,tasks.list.sortBy(_.id.get.desc) 我得到了这个错误

没有为scala.slick.lifted.ColumnOrdered [Long]定义隐式Ordering。

任何的想法?

scala slick-2.0

3
推荐指数
1
解决办法
1378
查看次数

标签 统计

java ×1

jmh ×1

scala ×1

slick-2.0 ×1