我试图弄清楚是否有一种更快的方法可以使用 Scala 从 URL 获取内容。使用 Apache IOUtils
,我能够比Source.fromURL
在 Scala 中更快地获取内容。以下是两者的代码:
使用 Java:
try {
tmp=IOUtils.toString(new URL("http://gizmodo.com"));
tmp=tmp.substring(tmp.indexOf("360\" title=")+12);
tmp=tmp.substring(0,tmp.indexOf("\""));
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
使用斯卡拉:
val gizmodoPageLines = Source.fromURL("http://gizmodo.com").getLines.mkString("\n")
val pos=gizmodoPageLines.indexOf("360\" title=")
var tmp=gizmodoPageLines.substring(pos+12)
tmp.substring(0,tmp.indexOf("\""))
在 Java 中大约需要:155899 ns
在 Scala 中:343880 ns
为什么 Scala 代码这么慢?