# HG changeset patch # User Kazuma # Date 1476964927 -32400 # Node ID 986be79bf122b0dba50722237bd26f4569e462a8 # Parent d1589c4f0963120e5af31b7df5636e290e1fd172 fix diff -r d1589c4f0963 -r 986be79bf122 .DS_Store Binary file .DS_Store has changed diff -r d1589c4f0963 -r 986be79bf122 .hgignore --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/.hgignore Thu Oct 20 21:02:07 2016 +0900 @@ -0,0 +1,3 @@ +.aux +.log +.dvi diff -r d1589c4f0963 -r 986be79bf122 Makefile --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Makefile Thu Oct 20 21:02:07 2016 +0900 @@ -0,0 +1,36 @@ + +TARGET = midterm + +LATEX = platex +BIBTEX = pbibtex +#DVIPS = dvips +#DVIPDFM = dvipdfmx +RM = rm -f +DVIPDF=dvipdfmx -p a4 +# Option definitions +#DVIPDFMOPT = +#DVIPSOPT = -D 720 -mode esphi -O 0mm,0mm -N0 + +# Suffixes definitions +.SUFFIXES: .tex .dvi .pdf + +.tex.dvi: + $(LATEX) $< + #$(BIBTEX) $(TARGET) + $(LATEX) $< + $(LATEX) $< + +.dvi.pdf: + $(DVIPDF) $(DVIPDF_OPT) $< + + +all: $(TARGET).pdf + open $(TARGET).pdf + +dvi: $(TARGET).dvi + +pdf: $(TARGET).pdf + + +clean: + rm -f *.dvi *.aux *.log *.pdf *.ps *.gz *.bbl *.blg *~ *.core diff -r d1589c4f0963 -r 986be79bf122 dummy.tex --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dummy.tex Thu Oct 20 21:02:07 2016 +0900 @@ -0,0 +1,60 @@ +%%% jdummy.def +% +\DeclareRelationFont{JY1}{mc}{it}{}{OT1}{cmr}{it}{} +\DeclareRelationFont{JT1}{mc}{it}{}{OT1}{cmr}{it}{} +\DeclareFontShape{JY1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{mc}{sl}{}{OT1}{cmr}{sl}{} +\DeclareRelationFont{JT1}{mc}{sl}{}{OT1}{cmr}{sl}{} +\DeclareFontShape{JY1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{sl}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{mc}{sc}{}{OT1}{cmr}{sc}{} +\DeclareRelationFont{JT1}{mc}{sc}{}{OT1}{cmr}{sc}{} +\DeclareFontShape{JY1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*min + <10.95><12><14.4><17.28><20.74><24.88> min10 + <-> min10}{} +\DeclareFontShape{JT1}{mc}{m}{sc}{<5> <6> <7> <8> <9> <10> sgen*tmin + <10.95><12><14.4><17.28><20.74><24.88> tmin10 + <-> tmin10}{} +\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmbx}{it}{} +\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmbx}{it}{} +\DeclareFontShape{JY1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{sl}{}{OT1}{cmbx}{sl}{} +\DeclareRelationFont{JT1}{gt}{sl}{}{OT1}{cmbx}{sl}{} +\DeclareFontShape{JY1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{sl}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{sc}{}{OT1}{cmbx}{sc}{} +\DeclareRelationFont{JT1}{gt}{sc}{}{OT1}{cmbx}{sc}{} +\DeclareFontShape{JY1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{mc}{bx}{sc}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\DeclareRelationFont{JY1}{gt}{it}{}{OT1}{cmr}{it}{} +\DeclareRelationFont{JT1}{gt}{it}{}{OT1}{cmr}{it}{} +\DeclareFontShape{JY1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*goth + <10.95><12><14.4><17.28><20.74><24.88> goth10 + <-> goth10}{} +\DeclareFontShape{JT1}{gt}{m}{it}{<5> <6> <7> <8> <9> <10> sgen*tgoth + <10.95><12><14.4><17.28><20.74><24.88> tgoth10 + <-> tgoth10}{} +\endinput +%%%% end of jdummy.def diff -r d1589c4f0963 -r 986be79bf122 midterm.pdf Binary file midterm.pdf has changed diff -r d1589c4f0963 -r 986be79bf122 midterm.tex --- a/midterm.tex Thu Oct 20 19:00:01 2016 +0900 +++ b/midterm.tex Thu Oct 20 21:02:07 2016 +0900 @@ -1,7 +1,5 @@ \documentclass[twocolumn,twoside,9.5pt]{jarticle} -\usepackage[dvips]{graphicx} -\usepackage[dviout]{graphicx} -\usepackage[dvipdfm]{graphicx} +\usepackage[dvipdfmx]{graphicx} \usepackage{ascmac} \usepackage{fancyhdr} %\pagestyle{fancy} @@ -17,11 +15,11 @@ \setlength{\textwidth}{181mm} \setlength{\textheight}{261mm} \setlength{\footskip}{0mm} -\pagestyle{\empty} - +\pagestyle{empty} +\input{dummy.tex} \begin{document} \title{Database Jungleに関する研究} -\author{135768k 武田和馬 {}{} 指導教員 : 河野真治} +\author{135768K 武田和馬 {}{} 指導教員 : 河野真治} \date{} \maketitle \thispagestyle{fancy} @@ -29,7 +27,7 @@ \section{非破壊木構造データベース} 当研究室ではデータの変更の際に過去の木構造を保存しつつ新しく木構造を作成する非破壊的木構造を用いたデータベースであるJungleを開発している。 -本研究ではJungle DBをC#で再実装を行い、Unity向けに組み込みを行う。 +本研究ではJungle DBをC\#で再実装を行い、Unity向けに組み込みを行う。 Jugnleの木は、子供を複数持つノードからなる。子供は順序付けられており、任意の位置で作成削除することができる。 @@ -47,18 +45,17 @@ Unityではデータの保存の際にMySQL、SQlite3、PlayerPrefsといった第一正規系、第二正規系のDBがよく使われている。 しかし、図1のように木構造でゲームは構成されているため、RDB向けにノードの関係を変換する必要がある。 -つまり、そのまま格納することができればスケールアウトするデータにも対応でき、データベース設計も簡略化できると考え、C#に書き直すことにした。 +つまり、そのまま格納することができればスケールアウトするデータにも対応でき、データベース設計も簡略化できると考え、C\#に書き直すことにした。 PlayerPrefsとは、Unityに特化したバイナリ形式でKey,Valueで保存されるものである。 - \section{Jungle-Sharpの実装} -JungleはJavaで書かれているものであったのでUnityで使うにはC#で実装する必要があった。 +JungleはJavaで書かれているものであったのでUnityで使うにはC\#で実装する必要があった。 \section{AtomicRefefarenceの実装} % atomic reference問題 -JavaにはAtomicRefarenceが標準であったがC#はなかったため、AtomicReferenceのClassを新たに作った。 +JavaにはAtomicRefarenceが標準であったがC\#はなかったため、AtomicReferenceのClassを新たに作った。 {\scriptsize \begin{itembox}[l]{図1 AtomicReference.cs} @@ -72,7 +69,8 @@ public bool CompareAndSet(T newValue, T prevValue) { T oldValue = value; - return (oldValue != Interlocked.CompareExchange (ref value, newValue, prevValue)); + return (oldValue != + Interlocked.CompareExchange (ref value, newValue, prevValue)); } @@ -82,7 +80,7 @@ } \end{verbatim} \end{itembox} -}\\ +} CompereAndSetメソッドではInterlocked Operationを利用した。 これによりスレッドセーフな値の変更を行うことが可能になる。 @@ -90,7 +88,7 @@ \section{Listの実装} Listを実装する際にIteratorが必要となる。 -C#にはIEnumeratorがあるのでそれを利用した。 +C\#にはIEnumeratorがあるのでそれを利用した。 {\scriptsize \begin{itembox}[l]{図2 List.cs} @@ -109,7 +107,6 @@ ListのforeachではIteratorを呼び出すため、一つずつ要素を返す必要がある。 yield returnステートメントを利用することで位置が保持され次に呼ばれた際に続きから値の取り出しが可能になる。 -\newpage \section{ベンチマーク} UnityではSqlite3,PlayerPrefsがデータの保存として利用される。 @@ -123,7 +120,7 @@ \end{itemize} \begin{figure}[h] -\includegraphics[width=2cm, bb=0 0 172 200]{benchmark.pdf} +\includegraphics[width=70mm]{pic/benchmark.pdf} \end{figure} Sqlite3では100msを超えてしまったため省略してある。 diff -r d1589c4f0963 -r 986be79bf122 pic/benchmark.pdf Binary file pic/benchmark.pdf has changed diff -r d1589c4f0963 -r 986be79bf122 pic/benchmark.xbb --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pic/benchmark.xbb Thu Oct 20 21:02:07 2016 +0900 @@ -0,0 +1,8 @@ +%%Title: ./benchmark.pdf +%%Creator: extractbb 20140317 +%%BoundingBox: 0 0 1568 745 +%%HiResBoundingBox: 0.000000 0.000000 1568.000000 745.000000 +%%PDFVersion: 1.4 +%%Pages: 1 +%%CreationDate: Thu Oct 20 20:16:09 2016 + diff -r d1589c4f0963 -r 986be79bf122 pic/emblem-bitmap.pdf Binary file pic/emblem-bitmap.pdf has changed