首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SaxonJS性能维护

SaxonJS性能维护
EN

Stack Overflow用户
提问于 2021-07-05 22:24:34
回答 1查看 24关注 0票数 0

我刚刚发现并开始使用Saxon-JS在Peppol (Peppol.eu)消息上运行Schematron验证,它工作得很好!

我已经将所需的模式“预编译”成JSON (使用schxsltxslt3),然后对数据执行SaxonJS.transform()

由于这些样式表相当大,因此需要一些时间,并且性能非常关键,因为它是通过API运行的。

我在Promise.all()中运行这三个调用,并添加了计时器。从计时器中,我可以看到函数调用是并行进行的,但SaxonJS.transform()的执行似乎是顺序的,即当第一个SaxonJS.transform()返回时,下一个开始...

我尝试将threads添加到代码中以使其在"workers“中运行,但我需要向该函数发送一个XMLDom对象,而threads似乎不支持这一点……

runTransform()的两次执行之间有一些关于430ms的内容,它们的名称类似于:

代码语言:javascript
运行
复制
let [xsdResult, valid, valid2] = await Promise.all([
  xsdValidation(event, xmlDoc),
  runTransform('EN16931-UBL-validation-preprocessed.sef.json', event, ves),
  runTransform('PEPPOL-EN16931-UBL.sef.json', event, ves)
]);

函数不应该并行运行(至少“多”并行)吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-08-09 08:13:38

这是runTransform()函数中的另一个await被“阻塞”,而不是最初认为的SaxonJS.transform()……

注意那些承诺...:o

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68257779

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档