Author: thimel Date: 2008-08-01 08:12:19 +0000 (Fri, 01 Aug 2008) New Revision: 14 Added: doc/etude.tex Modified: / Log: svn:ignore Ajout du source de l'etude Property changes on: ___________________________________________________________________ Name: svn:ignore + bin target .classpath .project Added: doc/etude.tex =================================================================== --- doc/etude.tex (rev 0) +++ doc/etude.tex 2008-08-01 08:12:19 UTC (rev 14) @@ -0,0 +1,2027 @@ +% Generated by Docutils 0.4.1 <http://docutils.sourceforge.net>. + +% Docutils settings: +\providecommand{\Dlanguageiso}{en} +\providecommand{\Dlanguagebabel}{english} + +% Docutils stylesheet: +\input{/usr/lib/python2.4/site-packages/docutils/writers/newlatex2e/base.tex} + +% Default definitions for Docutils nodes: +\providecommand{\DNText}[1]{#1} +\providecommand{\DNabbreviation}[1]{#1} +\providecommand{\DNacronym}[1]{#1} +\providecommand{\DNaddress}[1]{#1} +\providecommand{\DNadmonition}[1]{#1} +\providecommand{\DNattention}[1]{#1} +\providecommand{\DNattribution}[1]{#1} +\providecommand{\DNauthor}[1]{#1} +\providecommand{\DNauthors}[1]{#1} +\providecommand{\DNblockquote}[1]{#1} +\providecommand{\DNbulletlist}[1]{#1} +\providecommand{\DNcaption}[1]{#1} +\providecommand{\DNcaution}[1]{#1} +\providecommand{\DNcitation}[1]{#1} +\providecommand{\DNcitationreference}[1]{#1} +\providecommand{\DNclassifier}[1]{#1} +\providecommand{\DNcolspec}[1]{#1} +\providecommand{\DNcomment}[1]{#1} +\providecommand{\DNcompound}[1]{#1} +\providecommand{\DNcontact}[1]{#1} +\providecommand{\DNcontainer}[1]{#1} +\providecommand{\DNcopyright}[1]{#1} +\providecommand{\DNdanger}[1]{#1} +\providecommand{\DNdate}[1]{#1} +\providecommand{\DNdecoration}[1]{#1} +\providecommand{\DNdefinition}[1]{#1} +\providecommand{\DNdefinitionlist}[1]{#1} +\providecommand{\DNdefinitionlistitem}[1]{#1} +\providecommand{\DNdescription}[1]{#1} +\providecommand{\DNdocinfo}[1]{#1} +\providecommand{\DNdoctestblock}[1]{#1} +\providecommand{\DNdocument}[1]{#1} +\providecommand{\DNemphasis}[1]{#1} +\providecommand{\DNentry}[1]{#1} +\providecommand{\DNenumeratedlist}[1]{#1} +\providecommand{\DNerror}[1]{#1} +\providecommand{\DNfield}[1]{#1} +\providecommand{\DNfieldbody}[1]{#1} +\providecommand{\DNfieldlist}[1]{#1} +\providecommand{\DNfieldname}[1]{#1} +\providecommand{\DNfigure}[1]{#1} +\providecommand{\DNfooter}[1]{#1} +\providecommand{\DNfootnote}[1]{#1} +\providecommand{\DNfootnotereference}[1]{#1} +\providecommand{\DNgenerated}[1]{#1} +\providecommand{\DNheader}[1]{#1} +\providecommand{\DNhint}[1]{#1} +\providecommand{\DNimage}[1]{#1} +\providecommand{\DNimportant}[1]{#1} +\providecommand{\DNinline}[1]{#1} +\providecommand{\DNlabel}[1]{#1} +\providecommand{\DNlegend}[1]{#1} +\providecommand{\DNline}[1]{#1} +\providecommand{\DNlineblock}[1]{#1} +\providecommand{\DNlistitem}[1]{#1} +\providecommand{\DNliteral}[1]{#1} +\providecommand{\DNliteralblock}[1]{#1} +\providecommand{\DNnote}[1]{#1} +\providecommand{\DNoption}[1]{#1} +\providecommand{\DNoptionargument}[1]{#1} +\providecommand{\DNoptiongroup}[1]{#1} +\providecommand{\DNoptionlist}[1]{#1} +\providecommand{\DNoptionlistitem}[1]{#1} +\providecommand{\DNoptionstring}[1]{#1} +\providecommand{\DNorganization}[1]{#1} +\providecommand{\DNparagraph}[1]{#1} +\providecommand{\DNpending}[1]{#1} +\providecommand{\DNproblematic}[1]{#1} +\providecommand{\DNraw}[1]{#1} +\providecommand{\DNreference}[1]{#1} +\providecommand{\DNrevision}[1]{#1} +\providecommand{\DNrow}[1]{#1} +\providecommand{\DNrubric}[1]{#1} +\providecommand{\DNsection}[1]{#1} +\providecommand{\DNsidebar}[1]{#1} +\providecommand{\DNstatus}[1]{#1} +\providecommand{\DNstrong}[1]{#1} +\providecommand{\DNsubscript}[1]{#1} +\providecommand{\DNsubstitutiondefinition}[1]{#1} +\providecommand{\DNsubstitutionreference}[1]{#1} +\providecommand{\DNsubtitle}[1]{#1} +\providecommand{\DNsuperscript}[1]{#1} +\providecommand{\DNsystemmessage}[1]{#1} +\providecommand{\DNtable}[1]{#1} +\providecommand{\DNtarget}[1]{#1} +\providecommand{\DNtbody}[1]{#1} +\providecommand{\DNterm}[1]{#1} +\providecommand{\DNtgroup}[1]{#1} +\providecommand{\DNthead}[1]{#1} +\providecommand{\DNtip}[1]{#1} +\providecommand{\DNtitle}[1]{#1} +\providecommand{\DNtitlereference}[1]{#1} +\providecommand{\DNtopic}[1]{#1} +\providecommand{\DNtransition}[1]{#1} +\providecommand{\DNversion}[1]{#1} +\providecommand{\DNwarning}[1]{#1} + +% Auxiliary definitions: +\providecommand{\Dsetattr}[2]{} +\providecommand{\Dparent}{} % variable +\providecommand{\Dattr}[5]{#5} +\providecommand{\Dattrlen}{} % variable +\providecommand{\Dtitleastext}{x} % variable +\providecommand{\Dsinglebackref}{} % variable +\providecommand{\Dmultiplebackrefs}{} % variable +\providecommand{\Dparagraphindented}{false} % variable + + +\Dvisitdocument% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{etude-et-comparaison-des-moyens-d-acc-der-r-en-java}{document}{% + }% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{etude et comparaison des moyens d'acc{\`{e}}der {\`{a}} r en java}{document}{% + }% + \Dattr{}{source}{etude.rst}{document}{% + }% + \Dattr{}{title}{Etude et comparaison des moyens d'acc{\`{e}}der {\`{a}} R en Java}{document}{% + }% + \renewcommand{\Dtitleastext}{Etude{ }et{ }comparaison{ }des{ }moyens{ }d{'}acc{\`{e}}der{ }{\`{a}}{ }R{ }en{ }Java}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{document}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{etude-et-comparaison-des-moyens-d-acc-der-r-en-java}{title}{% + Etude{ }et{ }comparaison{ }des{ }moyens{ }d{'}acc{\`{e}}der{ }{\`{a}}{ }R{ }en{ }Java% + }}% + \renewcommand{\Dparent}{document}% + \def\DcurrentNtopicAcontents{1}% + \DNtopic{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{classes}{contents}{topic}{% + \Dattr{}{contents}{1}{topic}{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{contents}{topic}{% + \renewcommand{\Dtitleastext}{Contents}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{topic}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{contents}{title}{% + Contents% + }}% + \renewcommand{\Dparent}{topic}% + \DNbulletlist{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{introduction}% + \DNlistitem{% + \Dattr{}{tocrefid}{introduction}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{introduction}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id5}{paragraph}{% + \Dattr{}{refid}{introduction}{paragraph}{% + Introduction% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{r-sultats-attendus}% + \DNlistitem{% + \Dattr{}{tocrefid}{r-sultats-attendus}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{r-sultats-attendus}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id6}{paragraph}{% + \Dattr{}{refid}{r-sultats-attendus}{paragraph}{% + R{\'{e}}sultats{ }attendus% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{consid-rations-techniques}% + \DNlistitem{% + \Dattr{}{tocrefid}{consid-rations-techniques}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{consid-rations-techniques}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id7}{paragraph}{% + \Dattr{}{refid}{consid-rations-techniques}{paragraph}{% + Consid{\'{e}}rations{ }techniques% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \DNbulletlist{% + \Dsetbullet{\labelitemii}% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{r-seau}% + \DNlistitem{% + \Dattr{}{tocrefid}{r-seau}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{r-seau}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id8}{paragraph}{% + \Dattr{}{refid}{r-seau}{paragraph}{% + R{\'{e}}seau% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \def\DcurrentNlistitemAtocrefid{jni}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \Dattr{}{tocrefid}{jni}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{jni}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id9}{paragraph}{% + \Dattr{}{refid}{jni}{paragraph}{% + JNI% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}}% + \let\DcurrentNlistitemAlastitem=\relax% + \let\DcurrentNlistitemAtocrefid=\relax% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{d-roulement-protocole-des-tests}% + \DNlistitem{% + \Dattr{}{tocrefid}{d-roulement-protocole-des-tests}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{d-roulement-protocole-des-tests}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id10}{paragraph}{% + \Dattr{}{refid}{d-roulement-protocole-des-tests}{paragraph}{% + D{\'{e}}roulement{ }(protocole){ }des{ }tests% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{r-sultats-des-tests}% + \DNlistitem{% + \Dattr{}{tocrefid}{r-sultats-des-tests}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{r-sultats-des-tests}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id11}{paragraph}{% + \Dattr{}{refid}{r-sultats-des-tests}{paragraph}{% + R{\'{e}}sultats{ }des{ }tests% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \DNbulletlist{% + \Dsetbullet{\labelitemii}% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{test-a-calculs-rapides}% + \DNlistitem{% + \Dattr{}{tocrefid}{test-a-calculs-rapides}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{test-a-calculs-rapides}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id12}{paragraph}{% + \Dattr{}{refid}{test-a-calculs-rapides}{paragraph}{% + Test{ }A{ }{-}{ }Calculs{ }rapides% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{test-b-volumes-importants}% + \DNlistitem{% + \Dattr{}{tocrefid}{test-b-volumes-importants}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{test-b-volumes-importants}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id13}{paragraph}{% + \Dattr{}{refid}{test-b-volumes-importants}{paragraph}{% + Test{ }B{ }{-}{ }Volumes{ }importants% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \def\DcurrentNlistitemAtocrefid{test-c-temps-d-initialisation}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \Dattr{}{tocrefid}{test-c-temps-d-initialisation}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{test-c-temps-d-initialisation}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id14}{paragraph}{% + \Dattr{}{refid}{test-c-temps-d-initialisation}{paragraph}{% + Test{ }C{ }{-}{ }Temps{ }d{'}initialisation% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}}% + \let\DcurrentNlistitemAlastitem=\relax% + \let\DcurrentNlistitemAtocrefid=\relax% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{exploitation-des-r-sultats}% + \DNlistitem{% + \Dattr{}{tocrefid}{exploitation-des-r-sultats}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{exploitation-des-r-sultats}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id15}{paragraph}{% + \Dattr{}{refid}{exploitation-des-r-sultats}{paragraph}{% + Exploitation{ }des{ }r{\'{e}}sultats% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \DNbulletlist{% + \Dsetbullet{\labelitemii}% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{id1}% + \DNlistitem{% + \Dattr{}{tocrefid}{id1}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{id1}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id16}{paragraph}{% + \Dattr{}{refid}{id1}{paragraph}{% + Test{ }A{ }{-}{ }Calculs{ }rapides% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{id2}% + \DNlistitem{% + \Dattr{}{tocrefid}{id2}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{id2}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id17}{paragraph}{% + \Dattr{}{refid}{id2}{paragraph}{% + Test{ }B{ }{-}{ }Volumes{ }importants% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{id3}% + \DNlistitem{% + \Dattr{}{tocrefid}{id3}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{id3}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id18}{paragraph}{% + \Dattr{}{refid}{id3}{paragraph}{% + Test{ }C{ }{-}{ }Temps{ }d{'}initialisation% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{notes}% + \DNlistitem{% + \Dattr{}{tocrefid}{notes}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{notes}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id19}{paragraph}{% + \Dattr{}{refid}{notes}{paragraph}{% + Notes% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{r-capitulatif}% + \DNlistitem{% + \Dattr{}{tocrefid}{r-capitulatif}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{r-capitulatif}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id20}{paragraph}{% + \Dattr{}{refid}{r-capitulatif}{paragraph}{% + R{\'{e}}capitulatif% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \DNbulletlist{% + \Dsetbullet{\labelitemiii}% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{net}% + \DNlistitem{% + \Dattr{}{tocrefid}{net}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{net}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id21}{paragraph}{% + \Dattr{}{refid}{net}{paragraph}{% + Net% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAtocrefid{id4}% + \DNlistitem{% + \Dattr{}{tocrefid}{id4}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{id4}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id22}{paragraph}{% + \Dattr{}{refid}{id4}{paragraph}{% + JNI% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}% + \let\DcurrentNlistitemAtocrefid=\relax% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \def\DcurrentNlistitemAtocrefid{java}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \Dattr{}{tocrefid}{java}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{java}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id23}{paragraph}{% + \Dattr{}{refid}{java}{paragraph}{% + Java% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}}% + \let\DcurrentNlistitemAlastitem=\relax% + \let\DcurrentNlistitemAtocrefid=\relax% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \def\DcurrentNlistitemAtocrefid{conclusion}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \Dattr{}{tocrefid}{conclusion}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \def\DcurrentNparagraphArefid{conclusion}% + \DNparagraph{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id24}{paragraph}{% + \Dattr{}{refid}{conclusion}{paragraph}{% + Conclusion% + }}}% + \let\DcurrentNparagraphArefid=\relax% + }}}% + \let\DcurrentNlistitemAlastitem=\relax% + \let\DcurrentNlistitemAtocrefid=\relax% + }% + }}}}% + \let\DcurrentNtopicAcontents=\relax% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{introduction}{section}{% + }% + \renewcommand{\Dtitleastext}{Introduction}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id5}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{introduction}{title}{% + \Dattr{}{refid}{id5}{title}{% + Introduction% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Ce{ }document{ }a{ }pour{ }but{ }de{ }comparer{ }les{ }diff{\'{e}}rentes{ }solutions{ }envisageables{ }pour{ }l{'}utilisation{ }de{ }R{ }en{ }Java.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + R{ }est{ }un{ }outil{ }libre{ }de{ }calculs{ }et{ }de{ }cr{\'{e}}ation{ }de{ }graphiques{ }li{\'{e}}s{ }aux{ }statistiques.{ }Il{ }pr{\'{e}}sente{ }l{'}avantage{ }non{ }n{\'{e}}gligeable{ }d{'}{\^{e}}tre{ }optimis{\'{e}}{ }pour{ }bon{ }nombre{ }de{ }calculs.{ }Cependant{,}{ }R{ }n{'}est{ }pas{ }{\'{e}}crit{ }en{ }Java{ }et{ }ne{ }permet{ }donc{ }pas{ }d{'}{\^{e}}tre{ }directement{ }utilis{\'{e}}{ }dans{ }une{ }application{ }Java.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Heureusement{,}{ }R{ }est{ }un{ }projet{ }tr{\`{e}}s{ }modulaire{ }et{ }permet{ }par{ }le{ }biais{ }d{'}extensions{ }d{'}ouvrir{ }son{ }moteur{ }{\`{a}}{ }d{'}autres{ }appplications.{ }En{ }Java{,}{ }deux{ }possibilit{\'{e}}s{ }s{'}offrent{ }{\`{a}}{ }nous{ }:% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNbulletlistAbullet{-}% + \DNbulletlist{% + \Dattr{}{bullet}{-}{bulletlist}{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Acc{\`{e}}s{ }par{ }le{ }r{\'{e}}seau{ }:{ }L{'}application{ }envoie{ }des{ }requ{\^{e}}tes{ }par{ }le{ }r{\'{e}}seau{ }{\`{a}}{ }une{ }extension{ }de{ }R{ }faisant{ }office{ }de{ }serveur{,}{ }laquelle{ }renvoie{ }par{ }la{ }suite{ }les{ }r{\'{e}}sultats{ }obtenus.% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Acc{\`{e}}s{ }par{ }une{ }librairie{ }JNI{ }:{ }Il{ }s{'}agit{ }d{'}{\'{e}}crire{ }du{ }code{ }en{ }un{ }langage{ }autre{ }que{ }Java{ }qui{ }sera{ }compil{\'{e}}{ }et{ }exc{\'{e}}cut{\'{e}}{ }par{ }la{ }machine{ }plut{\^{o}}t{ }qu{'}interpr{\'{e}}t{\'{e}}.{ }Gr{\^{a}}ce{ }{\`{a}}{ }JNI{,}{ }il{ }est{ }ensuite{ }possible{ }d{'}appeler{ }ce{ }code{ }depuis{ }une{ }application{ }Java.% + }% + }}% + \let\DcurrentNlistitemAlastitem=\relax% + }}% + \let\DcurrentNbulletlistAbullet=\relax% + \Dauxiliaryspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Le{ }pr{\'{e}}sent{ }document{ }va{ }donc{ }comparer{ }ces{ }deux{ }solutions{ }afin{ }de{ }d{\'{e}}terminer{ }laquelle{ }est{ }la{ }plus{ }adapt{\'{e}}e.{ }Afin{ }d{'}effectuer{ }une{ }comparaison{ }plus{ }pertinente{,}{ }ces{ }solutions{ }seront{ }compar{\'{e}}es{,}{ }lorsque{ }c{'}est{ }possible{,}{ }{\`{a}}{ }l{'}utilisation{ }de{ }R{ }seul{ }(sans{ }Java){ }et{ }Java{ }seul{ }(sans{ }R).% + }% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{r{\'{e}}sultats attendus}{section}{% + }% + \renewcommand{\Dtitleastext}{R{\'{e}}sultats{ }attendus}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id6}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{r-sultats-attendus}{title}{% + \Dattr{}{refid}{id6}{title}{% + R{\'{e}}sultats{ }attendus% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Chacune{ }des{ }solutions{ }a{ }ses{ }avantages{ }et{ }ses{ }inconv{\'{e}}nients{ }qui{ }entreront{ }dans{ }la{ }d{\'{e}}cision{ }finale.{ }Avant{ }m{\^{e}}me{ }de{ }commencer{,}{ }la{ }nature{ }m{\^{e}}me{ }des{ }solutions{ }sugg{\`{e}}re{ }certains{ }r{\'{e}}sultats{ }qu{'}il{ }faudra{ }v{\'{e}}rifier{ }:% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNbulletlistAbullet{-}% + \DNbulletlist{% + \Dattr{}{bullet}{-}{bulletlist}{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Les{ }temps{ }de{ }r{\'{e}}ponse{ }obtenus{ }en{ }R{ }pur{ }seront{ }inf{\'{e}}rieurs{ }aux{ }solutions{ }r{\'{e}}seau{ }et{ }JNI.{ }Le{ }contraire{ }serait{ }{\'{e}}tonnant{ }dans{ }la{ }mesure{ }o{\`{u}}{ }l{'}utilisation{ }de{ }R{ }pur{ }est{ }la{ }seule{ }solution{ }n{'}impliquant{ }pas{ }de{ }technologie{ }tierce.% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Les{ }appels{ }JNI{ }devraient{ }prendre{ }moins{ }de{ }temps{ }que{ }les{ }appels{ }r{\'{e}}seau.{ }L{'}utilisation{ }des{ }interfaces{ }r{\'{e}}seau{ }est{ }reconnue{ }est{ }informatique{ }pour{ }{\^{e}}tre{ }un{ }point{ }qui{ }ralenti{ }souvent{ }les{ }applications.% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Certains{ }calculs{ }simples{ }effectu{\'{e}}s{ }en{ }Java{ }pur{ }pourraient{ }parfois{ }s{'}av{\'{e}}rer{ }plus{ }rapide.{ }Cependant{,}{ }des{ }calculs{ }plus{ }complexes{ }comme{ }des{ }calculs{ }matriciels{ }devraient{ }faire{ }ressortir{ }l{'}avantage{ }de{ }R.% + }% + }}% + \let\DcurrentNlistitemAlastitem=\relax% + }}% + \let\DcurrentNbulletlistAbullet=\relax% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{consid{\'{e}}rations techniques}{section}{% + }% + \renewcommand{\Dtitleastext}{Consid{\'{e}}rations{ }techniques}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id7}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{consid-rations-techniques}{title}{% + \Dattr{}{refid}{id7}{title}{% + Consid{\'{e}}rations{ }techniques% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{r{\'{e}}seau}{section}{% + }% + \renewcommand{\Dtitleastext}{R{\'{e}}seau}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id8}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{r-seau}{title}{% + \Dattr{}{refid}{id8}{title}{% + R{\'{e}}seau% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Par{ }d{\'{e}}faut{,}{ }R{ }n{'}int{\`{e}}gre{ }aucune{ }interface{ }r{\'{e}}seau{,}{ }et{ }ne{ }peut{ }donc{ }{\^{e}}tre{ }utilis{\'{e}}{ }{\`{a}}{ }distance.{ }Il{ }existe{ }une{ }extension{ }du{ }nom{ }de{ }{'}Rserve{'}{ }permettant{ }d{'}ajouter{ }{\`{a}}{ }R{ }la{ }possibilit{\'{e}}{ }de{ }recevoir{ }et{ }traiter{ }des{ }requ{\^{e}}tes{ }TCP/IP{,}{ }le{ }rendant{ }ainsi{ }accessible{ }{\`{a}}{ }tous{ }types{ }de{ }langages.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNbulletlistAbullet{-}% + \DNbulletlist{% + \Dattr{}{bullet}{-}{bulletlist}{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Avantages{ }:{ }R{ }non{ }n{\'{e}}cessaire{ }sur{ }la{ }machine{ }cliente{,}{ }d{\'{e}}l{\'{e}}gation{ }des{ }calculs{ }{\`{a}}{ }une{ }machine{ }tierce{,}{ }appli{ }100{\%}{ }portable% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Inconv{\'{e}}nient{ }:{ }Rserve{ }{\`{a}}{ }installer{ }sur{ }le{ }serveur% + }% + }}% + \let\DcurrentNlistitemAlastitem=\relax% + }}% + \let\DcurrentNbulletlistAbullet=\relax% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{jni}{section}{% + }% + \renewcommand{\Dtitleastext}{JNI}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id9}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{jni}{title}{% + \Dattr{}{refid}{id9}{title}{% + JNI% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + L{'}utilisation{ }de{ }JNI{ }implique{ }la{ }cr{\'{e}}ation{ }d{'}une{ }librairie{ }d{\'{e}}pendante{ }du{ }syst{\`{e}}me.{ }On{ }perd{ }donc{ }un{ }peu{ }de{ }la{ }portabilit{\'{e}}{ }du{ }Java.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNbulletlistAbullet{-}% + \DNbulletlist{% + \Dattr{}{bullet}{-}{bulletlist}{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Avantages{ }:{ }Installation{ }basique{ }de{ }R% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Inconv{\'{e}}nients{ }:{ }M{\^{e}}me{ }machine{,}{ }n{\'{e}}cessite{ }des{ }param{\`{e}}tres{ }de{ }d{\'{e}}marrage{ }de{ }l{'}application{ }Java{,}{ }l{'}application{ }Java{ }n{'}est{ }plus{ }100{\%}{ }portable{ }car{ }cr{\'{e}}ation/compilation{ }d{'}une{ }librairie{ }n{\'{e}}cessaire.% + }% + }}% + \let\DcurrentNlistitemAlastitem=\relax% + }}% + \let\DcurrentNbulletlistAbullet=\relax% + \Ddepartsection% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{d{\'{e}}roulement (protocole) des tests}{section}{% + }% + \renewcommand{\Dtitleastext}{D{\'{e}}roulement{ }(protocole){ }des{ }tests}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id10}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{d-roulement-protocole-des-tests}{title}{% + \Dattr{}{refid}{id10}{title}{% + D{\'{e}}roulement{ }(protocole){ }des{ }tests% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Le{ }but{ }des{ }tests{ }est{ }de{ }faire{ }ressortir{ }le{ }co{\^{u}}t{ }de{ }chacune{ }des{ }solutions{ }de{ }mani{\`{e}}re{ }{\`{a}}{ }d{\'{e}}terminer{ }laquelle{ }pourrait{ }{\^{e}}tre{ }la{ }meilleure{,}{ }mais{ }surtout{ }les{ }conditions{,}{ }s{'}il{ }y{ }en{ }a{,}{ }dans{ }lesquelles{ }telle{ }ou{ }telle{ }solution{ }est{ }meilleure.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Deux{ }types{ }de{ }tests{ }ont{ }{\'{e}}t{\'{e}}{ }effectu{\'{e}}s.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNbulletlistAbullet{-}% + \DNbulletlist{% + \Dattr{}{bullet}{-}{bulletlist}{% + \Dsetbullet{\labelitemi}% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Le{ }premier{ }consiste{ }{\`{a}}{ }envoyer{ }de{ }tr{\`{e}}s{ }petits{ }calculs{ }{\`{a}}{ }R{ }et{ }ce{ }beaucoup{ }de{ }fois{ }de{ }suite.{ }On{ }obtient{ }donc{ }une{ }moyenne{ }pour{ }chacune{ }des{ }solutions{ }ce{ }qui{ }permettra{ }d{'}{\'{e}}valuer{ }le{ }co{\^{u}}t{ }de{ }chaque{ }m{\'{e}}thode.% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \DNlistitem{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Le{ }second{ }se{ }base{ }sur{ }la{ }quantit{\'{e}}{ }de{ }donn{\'{e}}es{ }{\`{a}}{ }v{\'{e}}hiculer.{ }Il{ }s{'}agit{ }donc{ }l{\`{a}}{ }de{ }calculs{ }plus{ }long{ }mais{ }surtout{ }g{\'{e}}n{\'{e}}rant{ }un{ }plus{ }gros{ }volume{ }de{ }donn{\'{e}}es.{ }Plusieurs{ }mesures{ }seront{ }effectu{\'{e}}es{ }avec{ }des{ }tailles{ }croissantes{ }afin{ }d{'}{\'{e}}valuer{ }l{'}impact{ }de{ }l{'}augmentation{ }volum{\'{e}}trique.% + }% + }% + \renewcommand{\Dparent}{bulletlist}% + \def\DcurrentNlistitemAlastitem{true}% + \DNlistitem{% + \Dattr{}{lastitem}{true}{listitem}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{listitem}% + \DNparagraph{% + Le{ }dernier{ }test{ }est{ }surtout{ }informatif{ }et{ }ne{ }fera{ }ressortir{ }que{ }le{ }temps{ }n{\'{e}}cessaire{ }{\`{a}}{ }initialiser{ }chacunes{ }des{ }solutions{ }{\'{e}}tudi{\'{e}}es.% + }% + }}% + \let\DcurrentNlistitemAlastitem=\relax% + }}% + \let\DcurrentNbulletlistAbullet=\relax% + \Dauxiliaryspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + A{ }noter{ }que{ }:% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + De{ }fa{\c{c}}on{ }{\`{a}}{ }ne{ }pas{ }trop{ }laisser{ }libre{ }cours{ }aux{ }optimisations{ }des{ }diff{\'{e}}rentes{ }plateformes{,}{ }les{ }calculs{ }r{\'{e}}p{\'{e}}t{\'{e}}s{ }sont{ }volontairement{ }changeants{ }au{ }sein{ }d{'}un{ }m{\^{e}}me{ }test{ }(ils{ }restent{ }n{\'{e}}anmoins{ }identiques{ }entre{ }les{ }tests).% + }% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{r{\'{e}}sultats des tests}{section}{% + }% + \renewcommand{\Dtitleastext}{R{\'{e}}sultats{ }des{ }tests}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id11}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{r-sultats-des-tests}{title}{% + \Dattr{}{refid}{id11}{title}{% + R{\'{e}}sultats{ }des{ }tests% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test a - calculs rapides}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }A{ }{-}{ }Calculs{ }rapides}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id12}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{test-a-calculs-rapides}{title}{% + \Dattr{}{refid}{id12}{title}{% + Test{ }A{ }{-}{ }Calculs{ }rapides% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }temps{ }sont{ }exprim{\'{e}}s{ }en{ }milli{-}secondes.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \DNtable{% + \Dmaketable{|p{0.2015\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|}{% + \DNtgroup{% + \DNthead{% + \DNrow{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Java% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Net% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + JNI% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + R% + }% + }% + }% + }% + }% + }% + \DNtbody{% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Moyenne% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 241{,}06% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 233{,}56% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 230{,}83% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Ecart{-}type% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 18{,}65% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 11{,}99% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + }% + }% + }% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test b - volumes importants}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }B{ }{-}{ }Volumes{ }importants}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id13}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{test-b-volumes-importants}{title}{% + \Dattr{}{refid}{id13}{title}{% + Test{ }B{ }{-}{ }Volumes{ }importants% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }temps{ }sont{ }exprim{\'{e}}s{ }en{ }milli{-}secondes.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \DNtable{% + \Dmaketable{|p{0.2015\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|}{% + \DNtgroup{% + \DNthead{% + \DNrow{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Java% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Net% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + JNI% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + R% + }% + }% + }% + }% + }% + }% + \DNtbody{% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 50% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 0{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 1{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 1{,}33% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 500% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 0{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 3{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 1{,}33% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 5000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 1{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 13{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 3{,}33% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 50000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 24{,}20% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 33{,}50% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 8{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 100000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 60{,}20% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 118{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 79{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 200000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 66{,}60% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 142{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 116{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 500000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 89{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 330{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 189{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 1000000% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 94{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 620{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 282{,}00% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + }% + }% + }% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test c - temps d'initialisation}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }C{ }{-}{ }Temps{ }d{'}initialisation}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id14}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{test-c-temps-d-initialisation}{title}{% + \Dattr{}{refid}{id14}{title}{% + Test{ }C{ }{-}{ }Temps{ }d{'}initialisation% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }temps{ }sont{ }exprim{\'{e}}s{ }en{ }milli{-}secondes.% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \DNtable{% + \Dmaketable{|p{0.2015\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|p{0.1395\textwidth}|}{% + \DNtgroup{% + \DNthead{% + \DNrow{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Java% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Net% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + JNI% + }% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \Dattr{}{tableheaderentry}{true}{entry}{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + R% + }% + }% + }% + }% + }% + }% + \DNtbody{% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + Init.% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 22{,}10% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + 571{,}10% + }% + }% + }% + \Dsubsequententry{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + {\Dtextunderscore}% + }% + }% + }% + }% + }% + }% + }% + }% + \Ddepartsection% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{exploitation des r{\'{e}}sultats}{section}{% + }% + \renewcommand{\Dtitleastext}{Exploitation{ }des{ }r{\'{e}}sultats}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id15}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{exploitation-des-r-sultats}{title}{% + \Dattr{}{refid}{id15}{title}{% + Exploitation{ }des{ }r{\'{e}}sultats% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }tests{ }{\'{e}}tant{ }effectu{\'{e}}s{,}{ }il{ }faut{ }maintenant{ }les{ }interpr{\'{e}}ter{ }et{ }en{ }tirer{ }des{ }conclusions.% + }% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test a - calculs rapides}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }A{ }{-}{ }Calculs{ }rapides}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id16}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id1}{title}{% + \Dattr{}{refid}{id16}{title}{% + Test{ }A{ }{-}{ }Calculs{ }rapides% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Le{ }premier{ }test{ }avait{ }pour{ }but{ }d{'}isoler{ }le{ }co{\^{u}}t{ }de{ }chaque{ }appel{ }{\`{a}}{ }R.{ }La{ }comparaison{ }avec{ }du{ }Java{ }pur{ }n{'}avait{ }ici{ }aucun{ }int{\^{e}}ret{ }dans{ }la{ }mesure{ }ou{ }le{ }but{ }est{ }de{ }calculer{ }le{ }temps{ }d{'}appel{ }{\`{a}}{ }R.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Premi{\`{e}}rement{,}{ }l{'}op{\'{e}}ration{ }est{ }r{\'{e}}alis{\'{e}}e{ }en{ }R{ }pur{ }afin{ }d{'}avoir{ }un{ }temps{ }de{ }base{ }:{ }229.83ms.{ }A{ }partir{ }de{ }l{\`{a}}{,}{ }on{ }peut{ }estimer{ }que{ }le{ }temps{ }n{\'{e}}cessaire{ }{\`{a}}{ }chaque{ }technologie.{ }Ainsi{,}{ }un{ }appel{ }JNI{ }est{ }en{ }moyenne{ }d{'}un{ }peu{ }moins{ }de{ }3ms{ }(2.73ms){,}{ }alors{ }que{ }par{ }le{ }r{\'{e}}seau{,}{ }il{ }faut{ }plus{ }de{ }10ms{ }(10{,}23ms){,}{ }soit{ }un{ }ecart{ }d{'}environ{ }7ms{ }en{ }faveur{ }de{ }JNI.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + La{ }diff{\'{e}}rence{ }est{ }relativement{ }faible{,}{ }elle{ }ne{ }repr{\'{e}}sente{ }ici{ }que{ }3{\%}{,}{ }mais{ }r{\'{e}}p{\'{e}}t{\'{e}}e{ }{\`{a}}{ }grande{ }{\'{e}}chelle{ }elle{ }peut{ }{\^{e}}tre{ }p{\'{e}}nalisante.{ }Si{ }par{ }exemple{ }100.000{ }appels{ }cons{\'{e}}cutifs{ }sont{ }n{\'{e}}cessaires{,}{ }la{ }diff{\'{e}}rence{ }se{ }monte{ }{\`{a}}{ }700{ }secondes{ }soit{ }11{ }minutes{ }et{ }40{ }secondes{ }ce{ }qui{ }peut{ }{\^{e}}tre{ }{\'{e}}norme{ }pour{ }des{ }simulateurs{ }par{ }exemple.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Pour{ }ce{ }test{,}{ }l{'}{\'{e}}cart{-}type{ }{\'{e}}tait{ }mesur{\'{e}}{ }afin{ }d{'}estimer{ }la{ }r{\'{e}}partition{ }des{ }valeurs.{ }L{'}{\'{e}}cart{-}type{ }nous{ }permet{ }ici{ }de{ }constater{ }que{ }la{ }r{\'{e}}partition{ }des{ }valeurs{ }avec{ }JNI{ }est{ }plus{ }proche{ }de{ }la{ }moyenne{ }que{ }par{ }le{ }r{\'{e}}seau.{ }La{ }solution{ }r{\'{e}}seau{ }est{ }donc{ }plus{ }sensible{ }aux{ }variations{ }de{ }temps.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test b - volumes importants}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }B{ }{-}{ }Volumes{ }importants}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id17}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id2}{title}{% + \Dattr{}{refid}{id17}{title}{% + Test{ }B{ }{-}{ }Volumes{ }importants% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + La{ }deuxi{\`{e}}me{ }s{\'{e}}rie{ }de{ }tests{ }veut{ }mettre{ }en{ }valeur{ }l{'}{\'{e}}volution{ }des{ }temps{ }n{\'{e}}cessaires{ }avec{ }l{'}augmentation{ }du{ }volume{ }de{ }donn{\'{e}}es.{ }Inversement{ }au{ }pr{\'{e}}c{\'{e}}dent{ }test{,}{ }c{'}est{ }la{ }solution{ }R{ }pur{ }qui{ }n{'}a{ }ici{ }pas{ }de{ }sens{ }puisqu{'}on{ }cherche{ }{\`{a}}{ }{\'{e}}valuer{ }l{'}impact{ }d{'}un{ }passage{ }de{ }Java{ }{\`{a}}{ }R.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + L{'}op{\'{e}}ration{ }r{\'{e}}alis{\'{e}}e{ }pour{ }ce{ }test{ }est{ }un{ }simple{ }produit{ }scalaire{ }entre{ }deux{ }vecteurs{ }dont{ }la{ }taille{ }va{ }augmenter{ }progressivement.{ }Le{ }graphique{ }ci{-}dessous{ }permet{ }de{ }voir{ }instantann{\'{e}}ment{ }la{ }mani{\`{e}}re{ }dont{ }{\'{e}}voluent{ }ces{ }technologies{ }:% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \def\DcurrentNimageAalt{Evolution des temps de r{\'{e}}ponse}% + \def\DcurrentNimageAuri{img/testB-results.png}% + \DNimage{% + \Dattr{}{alt}{Evolution des temps de r{\'{e}}ponse}{image}{% + \Dattr{}{uri}{img/testB-results.png}{image}{% + }}}% + \let\DcurrentNimageAalt=\relax% + \let\DcurrentNimageAuri=\relax% + \Dauxiliaryspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + L{'}{\'{e}}tude{ }de{ }l{'}{\'{e}}volution{ }des{ }temps{ }de{ }r{\'{e}}ponse{ }s{'}av{\`{e}}re{ }r{\'{e}}v{\'{e}}latrice.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + A{ }faibles{ }volumes{ }de{ }donn{\'{e}}es{,}{ }les{ }r{\'{e}}sultats{ }des{ }3{ }solutions{ }sont{ }comparables.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Cependant{,}{ }la{ }solution{ }r{\'{e}}seau{ }montre{ }vite{ }ses{ }faiblesses.{ }D{\`{e}}s{ }l{'}utilisation{ }de{ }vecteurs{ }d{'}une{ }taille{ }de{ }5.000{ }chiffres{ }la{ }comparaison{ }devient{ }ridicule{ }tant{ }les{ }temps{ }n{\'{e}}cessaires{ }pour{ }transf{\'{e}}rer{ }les{ }vecteurs{ }prend{ }le{ }pas{ }sur{ }le{ }calcul.{ }Pour{ }le{ }reste{ }de{ }ce{ }test{,}{ }le{ }r{\'{e}}seau{ }restera{ }toujours{ }la{ }solution{ }la{ }moins{ }adapt{\'{e}}e.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Du{ }c{\^{o}}t{\'{e}}{ }de{ }JNI{,}{ }la{ }solution{ }s{'}av{\`{e}}re{ }beaucoup{ }plus{ }pertinente.{ }R{ }sur{ }JNI{ }s{'}offre{ }m{\^{e}}me{ }le{ }luxe{ }de{ }battre{ }Java{ }sur{ }certaines{ }tailles{ }ce{ }qui{ }est{ }tr{\`{e}}s{ }flatteur{ }si{ }on{ }tient{ }compte{ }du{ }fait{ }que{ }les{ }r{\'{e}}sultats{ }doivent{ }{\^{e}}tre{ }convertis{ }de{ }R{ }{\`{a}}{ }Java{ }afin{ }d{'}{\^{e}}tre{ }exploitables.{ }La{ }solution{ }se{ }montre{ }donc{ }viable{ }mais{ }uniquement{ }jusqu{'}{\`{a}}{ }ce{ }que{ }la{ }taille{ }des{ }vecteurs{ }depasse{ }les{ }100.000{ }chiffres.{ }Les{ }optimisations{ }de{ }Java{ }prennent{ }alors{ }le{ }dessus{ }et{ }affichent{ }des{ }temps{ }bien{ }inf{\'{e}}rieurs.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Enfin{ }le{ }dernier{ }test{ }sur{ }des{ }vecteurs{ }d{'}une{ }taille{ }de{ }1.000.000{ }de{ }chiffres{ }indique{ }des{ }temps{ }qui{,}{ }m{\^{e}}me{ }s{'}ils{ }ne{ }sont{ }plus{ }comparables{ }{\`{a}}{ }Java{ }(94ms){,}{ }restent{ }honorables.{ }La{ }solution{ }JNI{ }n{\'{e}}cessite{ }282ms{ }pour{ }effectuer{ }le{ }calcul{ }et{ }le{ }renvoyer{ }{\`{a}}{ }Java{,}{ }ce{ }qui{ }signifie{ }qu{'}il{ }est{ }toujours{ }possible{ }d{'}effectuer{ }3{ }produits{ }scalaires{ }sur{ }des{ }vecteurs{ }d{'}un{ }million{ }d{'}entr{\'{e}}es{ }en{ }moins{ }d{'}une{ }seconde.{ }Le{ }temps{ }n{\'{e}}cessaire{ }{\`{a}}{ }la{ }solution{ }r{\'{e}}seau{ }(620ms){ }n{'}est{ }pas{ }non{ }plus{ }ridicule{ }compte{ }tenu{ }de{ }la{ }taille{ }des{ }donn{\'{e}}es{ }{\`{a}}{ }traiter.{ }La{ }solution{ }r{\'{e}}seau{ }souffre{ }simplement{ }de{ }temps{ }de{ }transfert{ }trop{ }longs{ }qui{ }sont{ }le{ }reflet{ }habituel{ }de{ }l{'}utilisation{ }des{ }r{\'{e}}seaux.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{test c - temps d'initialisation}{section}{% + }% + \renewcommand{\Dtitleastext}{Test{ }C{ }{-}{ }Temps{ }d{'}initialisation}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id18}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id3}{title}{% + \Dattr{}{refid}{id18}{title}{% + Test{ }C{ }{-}{ }Temps{ }d{'}initialisation% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Le{ }temps{ }d{'}initialisation{ }repr{\'{e}}sente{ }le{ }temps{ }n{\'{e}}cessaire{ }{\`{a}}{ }la{ }premi{\`{e}}re{ }utilisation{ }de{ }l{'}application{ }avant{ }de{ }pouvoir{ }acc{\`{e}}der{ }{\`{a}}{ }R.{ }Il{ }peut{ }parraitre{ }annodin{,}{ }mais{ }en{ }r{\'{e}}alit{\'{e}}{ }il{ }peut{ }s{'}av{\'{e}}rer{ }primordial{ }dans{ }le{ }choix{ }de{ }la{ }solution{ }{\`{a}}{ }utiliser.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Si{ }les{ }tests{ }pr{\'{e}}c{\'{e}}dents{ }n{'}ont{ }pas{ }{\'{e}}t{\'{e}}{ }en{ }faveur{ }de{ }la{ }solution{ }r{\'{e}}seau{,}{ }ce{ }test{ }l{\`{a}}{ }montre{ }que{ }l{'}initialisation{ }de{ }JNI{ }prend{ }en{ }moyenne{ }550ms{ }de{ }plus{ }que{ }l{'}initialisation{ }du{ }r{\'{e}}seau.{ }Cette{ }diff{\'{e}}rence{ }peut{ }s{'}av{\'{e}}rer{ }cruciale{ }si{ }les{ }calculs{ }{\`{a}}{ }effectuer{ }sont{ }petits{ }et{ }peu{ }r{\'{e}}p{\'{e}}t{\'{e}}s.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{notes}{section}{% + }% + \renewcommand{\Dtitleastext}{Notes}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id19}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{notes}{title}{% + \Dattr{}{refid}{id19}{title}{% + Notes% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Certains{ }faits{ }n{'}apparaissent{ }pas{ }dans{ }les{ }chiffres{ }pr{\'{e}}c{\'{e}}demment{ }cit{\'{e}}s{ }mais{ }peuvent{ }{\'{e}}galement{ }faire{ }pencher{ }la{ }balance.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Par{ }exemple{,}{ }les{ }diff{\'{e}}rents{ }tests{ }ont{ }fait{ }ressortir{ }que{ }la{ }solution{ }r{\'{e}}seau{ }n{\'{e}}cessite{ }un{ }{\Dtextleftdblquote}temps{ }de{ }chauffe{\Dtextrightdblquote}.{ }Un{ }simple{ }test{ }r{\'{e}}p{\'{e}}t{\'{e}}{ }10{ }fois{ }de{ }suite{ }peut{ }le{ }mettre{ }en{ }{\'{e}}vidence.{ }Chaque{ }ligne{ }suivante{ }repr{\'{e}}sente{ }l{'}{\'{e}}volution{ }d{'}un{ }m{\^{e}}me{ }test{ }:% + }% + \Dauxiliaryspace% + \renewcommand{\Dparent}{section}% + \DNtable{% + \Dmaketable{|p{0.279\textwidth}|}{% + \DNtgroup{% + \DNtbody{% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }801ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }700ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }638ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }584ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }642ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }581ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }415ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }323ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }321ms% + }% + }% + }% + \DNrow{% + \DNentry{% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{entry}% + \DNparagraph{% + duration:{ }326ms% + }% + }% + }% + }% + }% + }% + }% + \Dauxiliaryspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + La{ }diff{\'{e}}rence{ }entre{ }le{ }premier{ }et{ }le{ }dernier{ }test{ }atteint{ }quasiment{ }la{ }demi{ }seconde{ }soit{ }plus{ }de{ }150{\%}{ }du{ }temps{ }n{\'{e}}cessaire{ }au{ }final{ }pour{ }l{'}op{\'{e}}ration.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{r{\'{e}}capitulatif}{section}{% + }% + \renewcommand{\Dtitleastext}{R{\'{e}}capitulatif}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id20}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{r-capitulatif}{title}{% + \Dattr{}{refid}{id20}{title}{% + R{\'{e}}capitulatif% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }tests{ }effectu{\'{e}}s{ }se{ }sont{ }montr{\'{e}}s{ }r{\'{e}}v{\'{e}}lateurs.% + }% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{net}{section}{% + }% + \renewcommand{\Dtitleastext}{Net}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id21}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{net}{title}{% + \Dattr{}{refid}{id21}{title}{% + Net% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Cette{ }solution{ }s{'}est{ }montr{\'{e}}e{ }moins{ }efficace{ }que{ }les{ }autres.{ }La{ }diff{\'{e}}rence{ }n{'}est{ }pas{ }pour{ }autant{ }dramatique{ }puisque{ }les{ }temps{ }restent{ }tout{ }{\`{a}}{ }fait{ }corrects.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Cette{ }approche{ }n{'}a{ }pas{ }que{ }des{ }inconv{\'{e}}nients.{ }En{ }effet{,}{ }la{ }mise{ }en{ }place{ }de{ }la{ }solution{ }r{\'{e}}seau{ }est{ }plus{ }simple{ }compar{\'{e}}e{ }{\`{a}}{ }JNI{ }et{ }b{\'{e}}n{\'{e}}ficie{ }{\'{e}}galement{ }d{'}un{ }temps{ }d{'}initialisation{ }beaucoup{ }plus{ }faible.{ }A{ }ne{ }pas{ }oublier{ }aussi{ }que{ }le{ }r{\'{e}}seau{ }offre{ }la{ }possibilit{\'{e}}{ }de{ }mobiliser{ }une{ }seconde{ }machine{ }pour{ }effectuer{ }les{ }calculs{ }en{ }R{,}{ }ce{ }qui{ }permettra{ }encore{ }d{'}am{\'{e}}liorer{ }les{ }performances.{ }A{ }noter{ }cependant{ }que{ }les{ }performances{ }de{ }la{ }solution{ }r{\'{e}}seau{ }s{'}am{\'{e}}liorent{ }avec{ }le{ }temps.{ }Ceci{ }signifie{ }que{ }la{ }solution{ }perd{ }de{ }son{ }inter{\^{e}}t{ }seulement{ }si{ }quelques{ }rares{ }appels{ }sont{ }effectu{\'{e}}s.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{dupnames}{jni}{section}{% + }% + \renewcommand{\Dtitleastext}{JNI}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id22}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{id4}{title}{% + \Dattr{}{refid}{id22}{title}{% + JNI% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + La{ }solution{ }JNI{ }a{ }fait{ }ses{ }preuves{ }sur{ }les{ }diff{\'{e}}rents{ }tests.{ }Il{ }s{'}est{ }av{\'{e}}r{\'{e}}{ }que{ }les{ }temps{ }d{'}appels{ }{\'{e}}taient{ }toujours{ }inf{\'{e}}rieurs{ }{\`{a}}{ }la{ }solution{ }r{\'{e}}seau.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + N{\'{e}}anmoins{,}{ }la{ }solution{ }JNI{ }n{'}a{ }pas{ }que{ }des{ }avantages.{ }La{ }mise{ }en{ }place{,}{ }par{ }exemple{,}{ }est{ }plus{ }complexe{ }car{ }elle{ }n{\'{e}}cessite{ }une{ }recompilation{ }des{ }sources{ }JNI.{ }On{ }perd{ }ainsi{ }un{ }peu{ }de{ }la{ }portabilit{\'{e}}{ }de{ }Java.{ }D{'}autre{ }part{,}{ }la{ }premi{\`{e}}re{ }initialisation{ }de{ }JNI{ }s{'}av{\`{e}}re{ }particuli{\`{e}}rement{ }longue{ }(une{ }demi{ }seconde){ }surtout{ }si{ }elle{ }est{ }compar{\'{e}}e{ }{\`{a}}{ }la{ }solution{ }r{\'{e}}seau.% + }% + \Ddepartsection% + \renewcommand{\Dparent}{section}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{java}{section}{% + }% + \renewcommand{\Dtitleastext}{Java}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id23}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{java}{title}{% + \Dattr{}{refid}{id23}{title}{% + Java% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + La{ }comparaison{ }n{'}a{ }que{ }peu{ }d{'}inter{\^{e}}t{ }mais{ }permet{ }de{ }faire{ }ressortir{ }la{ }puissance{ }de{ }Java{ }qui{ }par{ }le{ }biais{ }d{'}optimisations{ }parvient{ }{\`{a}}{ }devancer{ }R{ }sur{ }de{ }nombreux{ }calculs.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Il{ }n{'}en{ }reste{ }pas{ }moins{ }que{ }l{'}utilisation{ }de{ }R{ }a{ }des{ }avantages.{ }Les{ }tests{ }effectu{\'{e}}s{ }ici{ }ne{ }se{ }basaient{ }que{ }sur{ }des{ }calculs{ }simples.{ }En{ }appelant{ }des{ }fonctions{ }plus{ }optimis{\'{e}}es{ }de{ }R{ }voire{ }des{ }librairies{ }sp{\'{e}}cifiques{,}{ }Java{ }ne{ }pourraient{ }certainement{ }plus{ }rivaliser{ }avec{ }R.% + }% + \Ddepartsection% + \Ddepartsection% + \Ddepartsection% + \renewcommand{\Dparent}{document}% + \Dvisitsection% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{names}{conclusion}{section}{% + }% + \renewcommand{\Dtitleastext}{Conclusion}% + \renewcommand{\Dhassubtitle}{false}% + \renewcommand{\Dparent}{section}% + \def\DcurrentNtitleArefid{id24}% + \DNtitle{% + \renewcommand{\Dattrlen}{1}% + \Dattr{1}{ids}{conclusion}{title}{% + \Dattr{}{refid}{id24}{title}{% + Conclusion% + }}}% + \let\DcurrentNtitleArefid=\relax% + \renewcommand{\Dparagraphindented}{false}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Les{ }deux{ }principales{ }solutions{ }{\'{e}}tudi{\'{e}}es{ }(JNI{ }et{ }r{\'{e}}seau){ }ont{ }toutes{ }deux{ }montr{\'{e}}s{ }des{ }avantages{ }et{ }inconv{\'{e}}nients{ }et{ }fait{ }ressortir{ }des{ }cas{ }dans{ }lesquels{ }elles{ }sont{ }pr{\'{e}}f{\'{e}}rables{ }{\`{a}}{ }l{'}autre.% + }% + \Dparagraphspace% + \renewcommand{\Dparagraphindented}{true}% + \renewcommand{\Dparent}{section}% + \DNparagraph{% + Difficile{ }donc{ }de{ }faire{ }un{ }choix.{ }C{'}est{ }pourquoi{ }ce{ }choix{ }est{ }laiss{\'{e}}{ }{\`{a}}{ }l{'}utilisateur{ }avec{ }la{ }librairie{ }LutinJ2R{ }qui{ }propose{ }une{ }interface{ }unifi{\'{e}}e{ }pour{ }acc{\'{e}}der{ }aux{ }fonctionnalit{\'{e}}s{ }de{ }R{ }permettant{ }ainsi{ }de{ }choisir{ }{\`{a}}{ }la{ }vol{\'{e}}e{ }quelle{ }solution{ }utiliser.% + }% + \Ddepartsection% +\Ddepartdocument%
participants (1)
-
thimel@users.labs.libre-entreprise.org