【问题标题】:Aspose.Words save to PDF first time is slowAspose.Words 第一次保存到 PDF 很慢
【发布时间】:2019-12-19 18:51:12
【问题描述】:

有什么方法可以减少使用 Aspose.Words 的 Document.Save 方法的第一次运行的执行时间?

考虑:

for (var i = 0; i < 5; i++)
    Run();

static void Run()
{
    var sw = new Stopwatch();
    sw.Start();

    var doc = new Document();
    //doc.UpdatePageLayout(); // Makes no difference
    var memoryStream = new MemoryStream();
    doc.Save(memoryStream, SaveFormat.Pdf);

    sw.Stop();
    Console.WriteLine(sw.ElapsedMilliseconds);
}

这段代码将输出:

881
3
2
3
3

【问题讨论】:

  • 可能是 .NET Framework 延迟加载 Aspose 库,然后库自启动。如果您先使用库预先加载它或执行一些其他操作,然后再计时,会发生什么情况?
  • 此外,显式处理所有 IDisposable 对象是一种很好的做法 - 即使 MemoryStream 并非绝对必要。

标签: c# .net aspose.words


【解决方案1】:

在第一次运行时,Aspose.Words 会初始化资源,例如将文档呈现为 PDF 所需的字体。 UpdatePageLayout 没有任何区别,因为它在需要文档布局时在内部调用 - 当文档保存为固定页面格式(PDF、XPS、图像、PS 等)或需要评估索引字段(如 TOC 或 PAGE)时.

作为一种解决方法,我建议您在应用程序启动时运行这样的代码。这将初始化所需的资源,第一次真正的调用不会花费很长时间。

Document doc = new Document();
doc.UpdatePageLayout();

披露:我在 Aspose.Words 团队工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-27
    • 2017-07-23
    • 2017-05-23
    相关资源
    最近更新 更多