
私は、レポートを LaTeX で出力する Web アプリケーションをいくつか開発しています (これはあまり標準的ではないことは承知していますが、「なぜ」や「これが最善の選択なのか」は興味深いトピックではありますが、この質問の要点にはしたくありません)。
関連するタスクや問題のほとんどは問題ありませんが、複雑なグラフィック (グラフ、棒グラフ、円グラフなど) に TikZ を使用すると、サーバー上でパフォーマンスの問題が発生します。
質問は、さまざまなグラフィックパッケージのパフォーマンスについて経験のある人はいますか?私は読んだことがありますこの興味深い投稿しかし、可能であれば、それぞれの選択肢を学習したり、それらすべてを使用して同じページを構築したり、コンパイル時間を測定したりする作業は避けたいと思います。
回答/コメント/ヒントをいただければ幸いです
編集: @cfrのコメントによると、これは最も複雑なアプリケーションの例の1つです
\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
Tiを選ぶならけZ、コンパイルを高速化するには、
\usetikzlibrary{external}
\tikzexternalize
Tiを強制するけZ は画像を保存し、可能であれば再利用します。その結果、これは外部グラフィックスを使用する場合と (ほぼ) 同じくらい高速になります。もちろん、これは画像が (あまり頻繁に) 変更されない場合にのみ機能します。