Mercurial > hg > Papers > 2019 > anatofuz-prosym
comparison 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 |
comparison
equal
deleted
inserted
replaced
42:1abd6fc0abe8 | 43:f4d4cbf62aea |
---|---|
227 \subsection{現在のPerl6} | 227 \subsection{現在のPerl6} |
228 Perl6の言語仕様\cite{perl6design}とその時点での実装状況を纏めた公式ドキュメント\cite{perl6doc}は分離している. | 228 Perl6の言語仕様\cite{perl6design}とその時点での実装状況を纏めた公式ドキュメント\cite{perl6doc}は分離している. |
229 従来は言語仕様は自然言語の仕様書であったが,現在はテストスイートである「Roast\cite{roast}」そのものと定義されている. | 229 従来は言語仕様は自然言語の仕様書であったが,現在はテストスイートである「Roast\cite{roast}」そのものと定義されている. |
230 現在のPerl6の仕様を読む場合Roastを確認し,現在rakudo上に実装されている機能を見る場合は公式ドキュメントを確認する必要がある. | 230 現在のPerl6の仕様を読む場合Roastを確認し,現在rakudo上に実装されている機能を見る場合は公式ドキュメントを確認する必要がある. |
231 | 231 |
232 \subsection{処理速度} | |
233 現在のPerl6が他のプログラミング言語と比較した場合どのような違いがでるのか計測した. | |
234 mac osの/var/log/system.logファイルから正規表現でログ中のプログラムが書き込んだ回数を個別に数え上げるというものである. | |
235 今回はファイルを231Kと3GBの二種類用意し,どの様な違いが出るのか測定した. | |
236 | |
237 測定した環境は次の通りである. | |
238 | |
239 \begin{itemize} | |
240 \item Perl6 (MoarVM) ver.2018.04.01 | |
241 \item Perl6 (JVM) 2018.06-163-g612d071b8 built on JVM | |
242 \item Python 3.6.5 | |
243 \item Java 10 | |
244 \item Perl5 | |
245 \end{itemize} | |
246 | |
247 測定した結果を以下に示す.測定結果の単位は秒である. | |
248 | |
249 \begin{table}[htb] | |
250 \begin{tabular}{|l|c|c|c|c|c|} \hline | |
251 FileSize & MoarVM & Perl6 on JVM & Python3 & Java & Perl5\\ \hline | |
252 231K & 0.86 & 21.48 & 0.06 & 0.27 & 0.04 \\ | |
253 3G & 2331.08 & 1665.56 & 101.16 & 48.85 & 41.35\\ \hline | |
254 \end{tabular} | |
255 \end{table} | |
256 | |
257 計測結果からファイルサイズが小さい場合はMoarVMよりJVMに乗せたPerl6が低速であるが,ファイルサイズが大きい場合はJavaのJITが働くためMoarVMより高速に動いていると推測できる. | |
258 | |
259 %# 計測(3GB) | |
260 | |
261 %* Perl5c | |
262 % * 41.35s | |
263 %* Ruby | |
264 % * 574.52s | |
265 %* Python | |
266 % * 101.16s | |
267 %* Java | |
268 % * 48.85s | |
269 %* Perl6(Moar) | |
270 % * 2331.08s | |
271 %* Perl6(JVM) | |
272 % * 1665.56s | |
273 | |
274 %# 参考(231K) | |
275 | |
276 %* Perl5 | |
277 % * 0.04s | |
278 %* Ruby | |
279 % * 0.15s | |
280 %* Python | |
281 % * 0.06s | |
282 %* Java | |
283 % * 0.27s | |
284 %* Perl6(Moar) | |
285 % * 0.86s | |
286 %* Perl6(JVM) | |
287 % * 21.48s | |
288 | |
232 | 289 |
233 \section{CbCによるMoarVM} | 290 \section{CbCによるMoarVM} |
234 この章では改良を行ったPerl6処理系であるMoarVMについて述べる. | 291 この章では改良を行ったPerl6処理系であるMoarVMについて述べる. |
235 今回改良を行ったMoarVMは2018.04.01,nqpは2018.04-3-g45ab6e3バージョンで行っている. | 292 今回改良を行ったMoarVMは2018.04.01,nqpは2018.04-3-g45ab6e3バージョンで行っている. |
236 \subsection{方針} | 293 \subsection{方針} |