为什么 tikz 在绘制大量数据时比所见即所得绘图工具慢得多?

为什么 tikz 在绘制大量数据时比所见即所得绘图工具慢得多?

我想知道为什么tikz/pgf包含几千个数据点的数据文件图需要几分钟来编译,而使用 WYSIWYG 绘图工具创建相同的图(如优雅)或电子表格应用程序(如 MS Excel 或起源) 只需要几秒钟。所见即所得的应用程序与所见即所得的应用程序有何不同,为什么tikz速度要快得多?

答案1

除了读取数据文件之外,数据排版还涉及浮点运算,例如将数据点转换为输出介质(文档页面)的坐标系。根据设计,TeX 对浮点运算的支持非常有限。它们必须在其上实现为宏(Pgf、fp、LaTeX3)或委托给文档创建工作流程(PSTricks)的下一个转换步骤。显然,如果将 sin 或 exp 等数学运算实现为宏,则速度会慢得多。尽管如此,TikZ/PGF 可以配置为对每个图形仅执行一次绘图步骤。然后重复的文档编译将使用绘图的现有图形文件。

答案2

TikZ/PGF 和LaTeX/TeX标记是解释型语言,也就是说,程序仅由解释程序间接执行(“解释”)(在这种情况下,最终由 pdf(TeX) 可执行文件执行)。这与编译型语言形成对比,后者被转换成机器代码,然后由主机 CPU“直接”执行。例如,用 C++ 或 C 编写的程序(如您所引用的程序)本质上会快得多。

另一个问题是perceived速度。当你在 GUI 程序中输入数据时,程序很可能已经在做一些工作了。这在 Web 浏览器中非常常见。如果可以比较实际差异,CPU time durations差异将是微不足道的。

相关内容