من خودم همیشه برای اینکه سرعت حروفچینی نوشتارهای پارسی با بسته xepersian
را در کامپیوترهای مختلف مقایسه کنم از الگوریتم trial division برای حروفچینی نخستین ۲۰۰ هزار عدد اول استفاده میکنم.
فایلی با نام test.tex
با محتویات زیر درست کنید (این کد از کتاب TeXBook کنوث برداشته شده است):
\documentclass{article}
\usepackage{xepersian}
\settextfont{IRXLotus}
\newif\ifprime \newif\ifunknown
\newcount\n \newcount\p \newcount\d \newcount\a
\def\primes#1{2,~3% assume that #1 is at least 3
\n=#1 \advance\n by-2 % n more to go
\p=5 % odd primes starting with p
\loop\ifnum\n>0 \printifprime\advance\p by2 \repeat}
\def\printp{, % we will invoke \printp if p is prime
\ifnum\n=1 و~\fi % this precedes the last value
\number\p \advance\n by -1 }
\def\printifprime{\testprimality \ifprime\printp\fi}
\def\testprimality{{\d=3 \global\primetrue
\loop\trialdivision \ifunknown\advance\d by2 \repeat}}
\def\trialdivision{\a=\p \divide\a by\d
\ifnum\a>\d \unknowntrue\else\unknownfalse\fi
\multiply\a by\d
\ifnum\a=\p \global\primefalse\unknownfalse\fi}
\begin{document}
نخستین ۲۰۰ هزار عدد اول
\primes{200000}
هستند.
\end{document}
بعد برای اندازهگیری زمان حروفچینی در سیستم عامل Mac، یک ترمینال باز کنید و دستور زیر را وارد کنید:
time xelatex test.tex
در پایان، زمان حروفچینی نمایش داده میشود. اگر از سیستم عاملی غیر از Mac استفاده میکنید، احتمالا به دستور متفاوتی از time
برای اندازهگیری زمان حروفچینی نیاز دارید.
اگر با خطای TeX capicity exceeded
مواجه میشوید، عدد 200000
را به عدد کوچکتری تغییر دهید.