From b8942aa8b99286f276f5990e3a8d44a76313abc3 Mon Sep 17 00:00:00 2001 From: Akio Yasui Date: Wed, 30 Jan 2019 21:51:16 +0900 Subject: [PATCH] tmp --- src/050_evaluation.ja.tex | 110 ++++++++++++++++++++++++-------------- src/060_conclusion.ja.tex | 9 ++-- 2 files changed, 77 insertions(+), 42 deletions(-) diff --git a/src/050_evaluation.ja.tex b/src/050_evaluation.ja.tex index aad3062..c5cbb69 100644 --- a/src/050_evaluation.ja.tex +++ b/src/050_evaluation.ja.tex @@ -121,25 +121,41 @@ \section{実行速度} \caption{libwasmを用いた{\tt fib}関数の実行時間(マイクロ秒)と、必要なクロック数の比} \label{tab:fib_time} \begin{center} - \begin{tabular}{|r|r|r||r||r|r|r||r|} -\hline -& Mac mini & ESP32 & 必要クロック数 & & Mac mini & ESP32 & 必要クロック数 \\ \hline -0 & 3 & 267 & 7.1 倍 & 16 & 8,608 & 1,178,811 & 10.9 倍 \\ \hline -1 & 3 & 259 & 6.9 倍 & 17 & 13,815 & 1,933,996 & 11.2 倍 \\ \hline -2 & 9 & 916 & 7.8 倍 & 18 & 22,328 & 3,172,256 & 11.3 倍 \\ \hline -3 & 15 & 1,564 & 8.1 倍 & 19 & 35,609 & 5,202,283 & 11.6 倍 \\ \hline -4 & 25 & 2,799 & 8.9 倍 & 20 & 52,961 & 8,529,805 & 12.8 倍 \\ \hline -5 & 42 & 4,742 & 9.0 倍 & 21 & 83,772 & 13,983,115 & 13.3 倍 \\ \hline -6 & 70 & 7,994 & 9.0 倍 & 22 & 134,115 & 22,918,957 & 13.6 倍 \\ \hline -7 & 118 & 13,302 & 9.0 倍 & 23 & 216,433 & 37,558,837 & 13.8 倍 \\ \hline -8 & 161 & 22,046 & 10.9 倍 & 24 & 349,573 & 61,540,310 & 14.0 倍 \\ \hline -9 & 287 & 36,400 & 10.1 倍 & 25 & 562,661 & 100,818,119 & 14.3 倍 \\ \hline -10 & 408 & 59,973 & 11.7 倍 & 26 & 909,827 & 165,139,586 & 14.5 倍 \\ \hline -11 & 648 & 98,676 & 12.1 倍 & 27 & 1,455,711 & 270,457,743 & 14.8 倍 \\ \hline -12 & 1,432 & 162,208 & 9.0 倍 & 28 & 2,353,144 & 442,878,521 & 15.0 倍 \\ \hline -13 & 2,354 & 266,487 & 9.0 倍 & 29 & 3,847,535 & 725,117,084 & 15.0 倍 \\ \hline -14 & 3,642 & 437,590 & 9.6 倍 & 30 & 6,237,998 & 1,187,057,130 & 15.2 倍 \\ \hline -15 & 5,022 & 718,329 & 11.4 倍 & & & & \\ \hline + \begin{tabular}{rrrr} + \hline + & macOS環境での & ESP32環境での & 実行に必要な \\ + & 実行時間($\mu$s) & 実行時間($\mu$s) & クロック数の比 \\ \hline \hline + 0 & 3 & 267 & 7.1 倍 \\ \hline + 1 & 3 & 259 & 6.9 倍 \\ \hline + 2 & 9 & 916 & 7.8 倍 \\ \hline + 3 & 15 & 1,564 & 8.1 倍 \\ \hline + 4 & 25 & 2,799 & 8.9 倍 \\ \hline + 5 & 42 & 4,742 & 9.0 倍 \\ \hline + 6 & 70 & 7,994 & 9.0 倍 \\ \hline + 7 & 118 & 13,302 & 9.0 倍 \\ \hline + 8 & 161 & 22,046 & 10.9 倍 \\ \hline + 9 & 287 & 36,400 & 10.1 倍 \\ \hline + 10 & 408 & 59,973 & 11.7 倍 \\ \hline + 11 & 648 & 98,676 & 12.1 倍 \\ \hline + 12 & 1,432 & 162,208 & 9.0 倍 \\ \hline + 13 & 2,354 & 266,487 & 9.0 倍 \\ \hline + 14 & 3,642 & 437,590 & 9.6 倍 \\ \hline + 15 & 5,022 & 718,329 & 11.4 倍 \\ \hline + 16 & 8,608 & 1,178,811 & 10.9 倍 \\ \hline + 17 & 13,815 & 1,933,996 & 11.2 倍 \\ \hline + 18 & 22,328 & 3,172,256 & 11.3 倍 \\ \hline + 19 & 35,609 & 5,202,283 & 11.6 倍 \\ \hline + 20 & 52,961 & 8,529,805 & 12.8 倍 \\ \hline + 21 & 83,772 & 13,983,115 & 13.3 倍 \\ \hline + 22 & 134,115 & 22,918,957 & 13.6 倍 \\ \hline + 23 & 216,433 & 37,558,837 & 13.8 倍 \\ \hline + 24 & 349,573 & 61,540,310 & 14.0 倍 \\ \hline + 25 & 562,661 & 100,818,119 & 14.3 倍 \\ \hline + 26 & 909,827 & 165,139,586 & 14.5 倍 \\ \hline + 27 & 1,455,711 & 270,457,743 & 14.8 倍 \\ \hline + 28 & 2,353,144 & 442,878,521 & 15.0 倍 \\ \hline + 29 & 3,847,535 & 725,117,084 & 15.0 倍 \\ \hline + 30 & 6,237,998 & 1,187,057,130 & 15.2 倍 \\ \hline \end{tabular} \end{center} \end{table} @@ -148,25 +164,41 @@ \section{実行速度} \caption{Webブラウザにおける実行時間と、推測されるESP32上での実行時間(マイクロ秒)} \label{tab:fib_time_browser} \begin{center} - \begin{tabular}{|r|r|r||r|r|r|} + \begin{tabular}{rrr} \hline - & Webブラウザ & ESP32(推測) & & Webブラウザ & ESP32(推測) \\ \hline - 0 & 0 & 9 & 16 & 4 & 534 \\ \hline - 1 & 0 & 0 & 17 & 6 & 812 \\ \hline - 2 & 0 & 10 & 18 & 10 & 1,350 \\ \hline - 3 & 0 & 10 & 19 & 15 & 2,235 \\ \hline - 4 & 0 & 11 & 20 & 24 & 3,898 \\ \hline - 5 & 0 & 11 & 21 & 39 & 6,543 \\ \hline - 6 & 0 & 11 & 22 & 63 & 10,715 \\ \hline - 7 & 0 & 11 & 23 & 102 & 17,666 \\ \hline - 8 & 0 & 14 & 24 & 168 & 29,646 \\ \hline - 9 & 0 & 25 & 25 & 272 & 48,755 \\ \hline - 10 & 0 & 29 & 26 & 431 & 78,302 \\ \hline - 11 & 0 & 61 & 27 & 697 & 129,533 \\ \hline - 12 & 1 & 68 & 28 & 1,127 & 212,015 \\ \hline - 13 & 1 & 113 & 29 & 1,818 & 342,625 \\ \hline - 14 & 2 & 180 & 30 & 2,941 & 559,694 \\ \hline - 15 & 3 & 358 & & & \\ \hline + & Webブラウザでの & ESP32での \\ + & 実行時間($\mu$s) & 実行時間(推測、$\mu$s) \\ \hline \hline + 0 & 0 & 9 \\ \hline + 1 & 0 & 0 \\ \hline + 2 & 0 & 10 \\ \hline + 3 & 0 & 10 \\ \hline + 4 & 0 & 11 \\ \hline + 5 & 0 & 11 \\ \hline + 6 & 0 & 11 \\ \hline + 7 & 0 & 11 \\ \hline + 8 & 0 & 14 \\ \hline + 9 & 0 & 25 \\ \hline + 10 & 0 & 29 \\ \hline + 11 & 0 & 61 \\ \hline + 12 & 1 & 68 \\ \hline + 13 & 1 & 113 \\ \hline + 14 & 2 & 180 \\ \hline + 15 & 3 & 358 \\ \hline + 16 & 4 & 534 \\ \hline + 17 & 6 & 812 \\ \hline + 18 & 10 & 1,350 \\ \hline + 19 & 15 & 2,235 \\ \hline + 20 & 24 & 3,898 \\ \hline + 21 & 39 & 6,543 \\ \hline + 22 & 63 & 10,715 \\ \hline + 23 & 102 & 17,666 \\ \hline + 24 & 168 & 29,646 \\ \hline + 25 & 272 & 48,755 \\ \hline + 26 & 431 & 78,302 \\ \hline + 27 & 697 & 129,533 \\ \hline + 28 & 1,127 & 212,015 \\ \hline + 29 & 1,818 & 342,625 \\ \hline + 30 & 2,941 & 559,694 \\ \hline \end{tabular} \end{center} \end{table} @@ -184,9 +216,9 @@ \section{メモリフットプリント} \caption{ESP32環境におけるメモリフットプリントの推移(バイト)} \label{tab:heap_size} \begin{center} - \begin{tabular}{|r|r|r|r|} + \begin{tabular}{rrrr} \hline - & 未確保領域 & 起動からの確保量 & フットプリントの増加 \\ \hline + & 未確保領域 & 起動からの確保量 & フットプリントの増加 \\ \hline \hline 起動後 & 294,460 & 0 & - \\ \hline パース後 & 294,424 & 36 & 36 \\ \hline インスタンス化後 & 294,264 & 196 & 160 \\ \hline diff --git a/src/060_conclusion.ja.tex b/src/060_conclusion.ja.tex index 4e6c393..15b1de4 100644 --- a/src/060_conclusion.ja.tex +++ b/src/060_conclusion.ja.tex @@ -4,10 +4,13 @@ \chapter{結論} \section{本研究のまとめ} \label{section:conclusion} -本研究では、マイコンにおける実行内容をWebAssemblyで記述することで動的なプログラムの実行が可能になるという仮説のもと、マイコン向けWebAssembly実行環境を設計した。また、その実現可能性を評価するため、WebAssemblyバイナリのインタプリタをESP32上に実装し、実行速度とメモリフットプリントを計測した。 +本研究では、マイコンにおける実行内容をWebAssemblyで記述することで動的なプログラムの実行が可能になるという仮説のもと、マイコン向けWebAssembly実行環境を設計した。 +また、その実現可能性を評価するため、WebAssemblyバイナリのインタプリタをC言語で実装した。 -その結果、定数を返す関数実行で約260倍、加算と関数呼び出しを含む関数実行で約3000倍のオーバーヘッドがあった。 -また、メモリフットプリントについて、関数呼び出しの度に208バイトの増加が見られた。 +実装したWebAssemblyインタプリタを用いて、ESP32上およびPC上で同一のWebAsseblyプログラムを実行し、実行時間およびメモリフットプリントを計測した。 +実行時間では、ESP32上での実行はPC上での実行に比べ、クロック数による比較でおよそ7倍から15倍の時間がかかることが分かった。 +この結果をPC上のWebブラウザの実行性能と比較し、ESP32上で〜なWebAssemblyインタプリタが実現できた場合、30番目のフィボナッチ数の計算を約560ミリ秒で行えることが分かった。 +また、メモリフットプリントについて、208バイトのメモリ消費で関数呼び出しが行えることが分かった。 \section{今後の課題}