These are chat archives for scalikejdbc/ja

19th
Dec 2015
KAWACHI Takashi
@tkawachi
Dec 19 2015 05:47
@gakuzzzz 試してみましたがダメでした。うーん
KAWACHI Takashi
@tkawachi
Dec 19 2015 05:54
https://gist.github.com/tkawachi/8545ff8ec78d70747893 こんなかんじで java.lang.OutOfMemoryError: GC overhead limit exceeded でした
デバッガさんによると createStatementExecutor() が呼ばれるのは apply() のタイミングのようでした
Manabu Nakamura
@gakuzzzz
Dec 19 2015 10:07
むむむむ
Kazuhiro Sera
@seratch
Dec 19 2015 10:55
.apply()
.foldLeft(0L) { case (a, (l, s)) => a + s.length }
これはメモリあふれそうですね。.foreach なら大丈夫だろうけど。
KAWACHI Takashi
@tkawachi
Dec 19 2015 12:35
↓ foreach でも完走できませんでした
  def countSimpleForeach(): Long = {
    DB.localTx { implicit session =>
      var sum = L
      sql"SELECT * FROM txt"
        .map(rs => (rs.long(1), rs.string(2)))
        .fetchSize(Int.MinValue)
        .traversable()
        .apply()
        .foreach { case (l, s) => sum += s.length }
      sum
    }
  }
あれ sum = 0Lsum = L に みえるな…
KAWACHI Takashi
@tkawachi
Dec 19 2015 12:46
お、 apply() しなかったら完走しました。
  def countSimpleForeach2(): Long = {
    DB.localTx { implicit session =>
      var sum = L
      sql"SELECT * FROM txt"
        .fetchSize(Int.MinValue)
        .traversable()
        .foreach(wrs => sum += wrs.string(2).length)
      sum
    }
  }