针对玩具SAT求解器的性能的基本Scala / JVM / Akka优化

时间:2016-10-24 00:15:26

标签: performance scala jvm akka

我正在使用Akka和Scala进行SAT求解器,现在它解决了MiniSAT在6分钟内在30秒内解决的问题。所以我想必须有很多优化空间。

但我是Scala,Akka和JVM的新手,我敢打赌,我可以做一些简单而微不足道的优化 - 比如调整JVM堆大小。或者也许我应该避免在Scala中有类。

我还想知道可以使用哪些工具来逐行分析Scala代码,或者至少逐个方法分析Scala代码,这样除了运行hprof之外我还可以识别代码中的热点。

Akka分析工具也很有趣。

(对不起开放性,但它也很有用,很容易使用搜索引擎搜索。它应该出现在使用Scala在JVM上优化Akka的许多搜索中。)

可以在http://github.com/roehst/akka-sat找到代码。

一些快速实施细节&注意到:

  • 一个大问题(SAT)被分解为1000个子问题
  • 每个问题都是在CNF中表示为List [List [Int]]
  • 的布尔公式
  • 我使用10名工作人员进行循环路由
  • 公式的操作是通过带有一些内联的列表上的地图和过滤器完成的。
  • 公式的操作是在Object上定义的,但可以使用隐式类
  • 在公式上调用

0 个答案:

没有答案