diff Paper/anatofuz.tex @ 43:f4d4cbf62aea

add detail
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 09 Nov 2018 15:23:15 +0900
parents 1abd6fc0abe8
children 571f6ffcccf8
line wrap: on
line diff
--- a/Paper/anatofuz.tex	Fri Nov 09 14:21:50 2018 +0900
+++ b/Paper/anatofuz.tex	Fri Nov 09 15:23:15 2018 +0900
@@ -229,6 +229,63 @@
 従来は言語仕様は自然言語の仕様書であったが,現在はテストスイートである「Roast\cite{roast}」そのものと定義されている.
 現在のPerl6の仕様を読む場合Roastを確認し,現在rakudo上に実装されている機能を見る場合は公式ドキュメントを確認する必要がある.
 
+\subsection{処理速度}
+現在のPerl6が他のプログラミング言語と比較した場合どのような違いがでるのか計測した.
+mac osの/var/log/system.logファイルから正規表現でログ中のプログラムが書き込んだ回数を個別に数え上げるというものである.
+今回はファイルを231Kと3GBの二種類用意し,どの様な違いが出るのか測定した.
+
+測定した環境は次の通りである.
+
+\begin{itemize}
+  \item Perl6 (MoarVM) ver.2018.04.01
+  \item Perl6 (JVM) 2018.06-163-g612d071b8 built on JVM
+  \item Python 3.6.5
+  \item Java 10
+  \item Perl5
+\end{itemize}
+
+測定した結果を以下に示す.測定結果の単位は秒である.
+
+\begin{table}[htb]
+\begin{tabular}{|l|c|c|c|c|c|} \hline
+   FileSize & MoarVM & Perl6 on JVM & Python3 & Java & Perl5\\  \hline
+   231K & 0.86 & 21.48 & 0.06 & 0.27 & 0.04 \\ 
+   3G &  2331.08 & 1665.56 & 101.16 & 48.85 & 41.35\\ \hline
+\end{tabular}
+\end{table}
+
+計測結果からファイルサイズが小さい場合はMoarVMよりJVMに乗せたPerl6が低速であるが,ファイルサイズが大きい場合はJavaのJITが働くためMoarVMより高速に動いていると推測できる.
+
+%# 計測(3GB)
+
+%* Perl5c
+%    * 41.35s
+%* Ruby
+%    * 574.52s
+%* Python
+%    * 101.16s
+%* Java
+%    * 48.85s
+%* Perl6(Moar)
+%    * 2331.08s
+%* Perl6(JVM)
+%    * 1665.56s
+
+%# 参考(231K)
+
+%* Perl5
+%    * 0.04s
+%* Ruby
+%    * 0.15s
+%* Python
+%    * 0.06s
+%* Java
+%    * 0.27s
+%* Perl6(Moar)
+%    * 0.86s
+%* Perl6(JVM)
+%    * 21.48s
+
 
 \section{CbCによるMoarVM}
 この章では改良を行ったPerl6処理系であるMoarVMについて述べる.