关于图形包的性能问题

关于图形包的性能问题

我开发了一些以 LaTeX 输出报告的 Web 应用程序(我知道这不是很标准,但“为什么”和“这是最好的选择吗”不想成为这个问题的重点,尽管它们是有趣的话题)。

我对所涉及的大多数任务和问题都很满意,但在使用 TikZ 处理复杂图形(图表、条形图、饼图和排序)时,确实遇到了服务器的性能问题。

问题是:有谁对不同图形包的性能有经验吗?我读过这篇有趣的文章但是,如果可能的话,我想避免学习每一种替代方案,用它们全部构建相同的页面并测量编译时间。

非常感谢您的回答/评论/提示

编辑:截至@cfr 评论,这里是最复杂的应用程序之一的示例

\documentclass{article}
\usepackage{tikz}
\usetikzlibrary{decorations.text}
\begin{document} 
\def\shadingangle{30}
\def\startinganglery{30}
\def\startingangleyg{120}
\def\subdivisions{60}
\begin{tikzpicture}[radius=3]
\draw[white] (-3.3,-0.2) rectangle  (3.3,3.3);
\fill [red] (0:0) -- ( 0:3) arc[start angle=0, delta angle=\startinganglery+\shadingangle/2]  -- cycle;
\fill [yellow] (0:0) -- (\startinganglery+\shadingangle/2:3) arc[start angle=\startinganglery+\shadingangle/2, delta angle=\startingangleyg-\startinganglery] -- cycle;
\fill [green] (0:0) -- (\startingangleyg+\shadingangle/2:3) arc[start angle=\startingangleyg+\shadingangle/2, delta angle=180-\startingangleyg-\shadingangle/2] -- cycle;

\foreach \i[evaluate={\col=(\i+.5)/\subdivisions*100}] in {0,...,\numexpr\subdivisions-1\relax}
    \fill[color=yellow!\col!red]
        (0,0) -- (\i*\shadingangle/\subdivisions+\startinganglery:3) arc[start angle=\i*\shadingangle/\subdivisions+\startinganglery, end angle=(\i+1)*\shadingangle/\subdivisions+1+\startinganglery] -- cycle;
\foreach \i[evaluate={\col=(\i+.5)/\subdivisions*100}] in {0,...,\numexpr\subdivisions-1\relax}
    \fill[color=green!\col!yellow]
        (0,0) -- (\i*\shadingangle/\subdivisions+\startingangleyg:3) arc[start angle=\i*\shadingangle/\subdivisions+\startingangleyg, end angle=(\i+1)*\shadingangle/\subdivisions+\startingangleyg] -- cycle;
\fill [white] (2.25,0) arc (0:180:2.25);
\draw (-3,0) -- (3,0);
\draw (3,0) arc  (0:180:3);

\draw [decorate,decoration={text along path, text=|\small|low medium high||,
text align=fit to path stretching spaces}]
(-3.1,0) arc  (180:0:3.1);

\fill (0.1,0) arc (0:180:0.1);
\draw [->,very thick] (0,0) -- (96:2.2);

\node[below,text width=6cm,align=center] at (0,0) {Compliance risk};
\end{tikzpicture}
\end{document} 

答案1

如果你选择 TiZ,你可以使用以下方法来加速编译

\usetikzlibrary{external}
\tikzexternalize

这迫使 TiZ 保存图片,如果可能的话,可以重复使用。因此,这几乎与使用外部图形一样快。当然,这只有在图片不经常更改的情况下才有效。

相关内容