有没有办法可以知道我的文档编译花了多长时间?

有没有办法可以知道我的文档编译花了多长时间?

我在想,如果能知道我加载的每个包在单击“编译”和看到 PDF 出现在屏幕上之间的总时间中增加了多少时间,那就太好了,这样我就可以确定哪些包在非必要情况下不应该加载。如果有一种方法可以测量编译所需的精确时间(即让计算机测量,而不是用秒表手动估算),我可以一次删除一个包并测量差异。但我找不到这样做的方法;我在“日志”文件中搜索了一下,没有看到这个信息,也找不到任何添加此功能的包。

最终,我承认这不是什么大问题 - 编译通常只需要一秒钟,也许两秒钟 - 但现在我很好奇如何做到这一点,并且它可能与更大的文档有关(编译时间更长)。

答案1

这在某种程度上取决于操作系统。在 Linux 和 OS X 上,您可以time从命令行使用该命令。

time pdflatex myfile.tex

返回:(例如)

real    0m1.976s
user    0m0.331s
sys     0m0.091s

Windows 中可能存在类似的命令。根据您的编辑环境,您可能可以从编辑器中(临时)修改 latex 命令以在编译时运行 time 命令,这将使检查不同包配置的时间更加容易。

答案2

如果您正在使用pdftex引擎,则可以通过在文档开头附近添加以下内容来测量每个包的加载时间。

\makeatletter
\newcommand{\typeoutthetime}
  {\typeout{\strip@pt\dimexpr\pdfelapsedtime sp\relax sec.}}
\edef\@popfilename
  {%
    \unexpanded\expandafter{\@popfilename}%
    \noexpand\typeoutthetime
  }
\makeatother

您还可以在文档末尾使用 Heiko Oberdiek 的atveryend包进行类似操作:\AtVeryVeryEnd{\typeoutthetime}

答案3

默认情况下,ConTeXt 提供

system          | total runtime: 35.093

在每次编译结束时。这是解析引用等所需的所有运行的累积。有关更详细的用法,有一个timing模块,它以图形方式输出每个页面使用的资源。

\usemodule[timing]
\starttext
 ,,,
 ...
\page
\ShowUsage{}
\stoptext

输出结果类似于Mk手册

答案4

TeXLaTeX并且其所有分发版本都提供(至少从版本 3 开始)
编译命令-time-statistics


(您可以通过打开命令行并执行来找到编译选项和命令的列表latex --help。)

但不确定是否可以直接从.tex文件调用此编译命令(以及如何调用)。
例如,比较\batchmode调用-interaction=batchmode

仍然希望这对某些人有用。:)

此外,它的执行情况如下: 在此处输入图片描述

相关内容