changeset 3:7b3bab2431d4

add benchmark.pdf
author Kazuma
date Thu, 20 Oct 2016 18:57:47 +0900
parents cde61c2d9cdc
children d1589c4f0963
files midterm.tex
diffstat 1 files changed, 22 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/midterm.tex	Thu Oct 20 14:45:14 2016 +0900
+++ b/midterm.tex	Thu Oct 20 18:57:47 2016 +0900
@@ -34,7 +34,7 @@
 Jugnleの木は、子供を複数持つノードからなる。子供は順序付けられており、任意の位置で作成削除することができる。
 
 Unityは3Dゲームエンジンである。
-ゲーム構造はシーングラフを実装しており、ゲームオブジェクトの親子関係からなり、子共を複数もつノードからなる。
+ゲーム構造はシーングラフを実装しており、ゲームオブジェクトの親子関係からなり、子どもを複数もつノードからなる。
 Jungleはこれと同じ構造を持っているため、相性が良い。
 
 % ので、過去の組織のデータを参照する必要が出てくる。よって過去のデータの参照が出来るJungleと相性が良い。
@@ -43,6 +43,15 @@
 % ポリシーファイルは、組織の中で申請等を行った際に、どの権限によってその申請が許諾されるのかを指定している。
 % 組織のデータ、ポリシーファイル共に木構造のデータであるため、Jungleにそのまま格納できる。
 
+\section{Unityでの問題点}
+
+Unityではデータの保存の際にMySQL、SQlite3、PlayerPrefsといった第一正規系、第二正規系のDBがよく使われている。
+しかし、図1のように木構造でゲームは構成されているため、RDB向けにノードの関係を変換する必要がある。
+つまり、そのまま格納することができればスケールアウトするデータにも対応でき、データベース設計も簡略化できると考え、C#に書き直すことにした。
+
+PlayerPrefsとは、Unityに特化したバイナリ形式でKey,Valueで保存されるものである。
+
+
 \section{Jungle-Sharpの実装}
 
 JungleはJavaで書かれているものであったのでUnityで使うにはC#で実装する必要があった。
@@ -104,28 +113,21 @@
 \section{ベンチマーク}
 
 UnityではSqlite3,PlayerPrefsがデータの保存として利用される。
-今回の検証はInsertを1000回行ったのち、push(またはSave)を行い時間を測定する。
-
-PlayerPrefsとは、Unityに特化したバイナリ形式でKeyValueで保存されるものである。
-
-JungleのInsert
-1 : 13ms
-2 : 20ms
-3 : 21ms
-4 : 20ms
+今回の検証はInsertを1000回行い、push(またはSave)を行うまでの時間を測定する。
 
-Sqlite3のInsert
-1 : 12821ms
-2 : 12692ms
-3 : 12670ms
-4 : 12649ms
+使用した機材は以下の通りである。
+\begin{itemize}
+\item OS : Windows 10
+\item CPU : Intel Core i7-4700MQ 2.4GHz
+\item Unity : Unity 5.4.2f1
+\end{itemize}
 
-PlayerPrefsのInsert
-1 : 40ms
-2 : 28ms
-3 : 29ms
-4 : 29ms
+\begin{figure}[h]
+\includegraphics[width=2cm, bb=0 0 172 200]{benchmark.pdf}
+\end{figure}
 
+Sqlite3では100msを超えてしまったため省略してある。
+図3の結果よりJungleDBの速度を確認することができた。
 
 
 \section{これからの作業}