我在想,如果能知道我加载的每个包在单击“编译”和看到 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手册。