
我開發了一些用 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
如果你選擇鈦kZ,您可以使用以下方法加快編譯速度
\usetikzlibrary{external}
\tikzexternalize
這迫使TikZ 儲存並在可能的情況下重複使用這些圖片。因此,這(幾乎)與使用外部圖形一樣快。當然,這僅在圖片未更改(非常頻繁)的情況下才有效。