Scala简单模式匹配非常慢

时间:2013-10-18 14:06:01

标签: scala javax.mail

给出以下代码来读取电子邮件并解析它们......

  val inbox = store.getFolder("Inbox")
  inbox.open(Folder.READ_WRITE)
  val messages = inbox.getMessages()
  for (message <- messages) {
    val from = InternetAddress.toString(message.getFrom())
    if (from.contains(sender)) {
      message.getContent() match {
        case content: String => {
          parse(content) match {
            case Some(reading: SiteReading) => {
              readings += reading
              Logger.info(s"Message added. Subject: ${message.getSubject()}");
            }
            case _ => Logger.warn(s"Unable to process message. Ignoring. $content");
          }
          message.setFlag(Flags.Flag.DELETED, true);
        }
        case _ => Logger.error(s"Unknown message type sent from $sender.");
      }
    }
  }

第7行case content: String =>非常慢。我当时认为我的解析功能很慢,但是在以毫秒为单位进行分析之后,它并没有真正告诉我模式匹配可能是罪魁祸首。模式匹配需要250-300毫秒。

由于javax.mailObject返回message.getContent(),我必须测试该类型。

我正在使用Scala 2.10.2。

0 个答案:

没有答案