几天前我下载了 Calabash XML,并在命令提示符下轻松地运行它。然后我尝试从 Java 代码运行它,我注意到没有 API(例如 Calabash 主方法非常庞大,到处都有代码调用)。为了让它工作非常混乱,因为我必须将大块从 main 方法复制到包装类,并从 System.out 转移到字节数组输出流(并最终进入字符串),即
...
ByteArrayOutputStream baos = new ByteArrayOutputStream (); // declare at top
...
WritableDocument wd = null;
if (uri != null) {
URI furi = new URI(uri);
String filename = furi.getPath();
FileOutputStream outfile = new FileOutputStream(filename);
wd = new WritableDocument(runtime,filename,serial,outfile);
} else {
wd = new WritableDocument(runtime,uri,serial, baos); // new "baos" parameter
}
性能似乎非常非常慢,例如我运行了一个简单的过滤器 1000 次......
<p:filter>
<p:with-option name="select" select="'/result/meta-data/neighbors/document/title'" />
</p:filter>
平均每次花费 17 毫秒,这看起来并不多,但我的 Spring REST 控制器调用 Mongo DB 和加密调用等平均需要 3/4 毫秒。
从代码运行 Calabash 时有人遇到过这种情况吗?我可以做些什么来加快速度吗?
例如,我每次都会调用它 -
XProcRuntime runtime = new XProcRuntime(config);
这可以创建一次并重复使用吗?感谢任何帮助,因为我不想花钱来使用 Calamet,但真的想让 Xproc 从代码工作到可接受的性能。