# HG changeset patch # User Takahiro SHIMIZU # Date 1541744595 -32400 # Node ID f4d4cbf62aeab672932dcf51da0b04343b7d1cae # Parent 1abd6fc0abe8ed0f2ae4c782a1258f5232d85e37 add detail diff -r 1abd6fc0abe8 -r f4d4cbf62aea Paper/anatofuz.pdf Binary file Paper/anatofuz.pdf has changed diff -r 1abd6fc0abe8 -r f4d4cbf62aea Paper/anatofuz.tex --- 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について述べる.