JIT vs AOT Compiling

Esta questão está relacionada ao sistema Android. Dalvik VM usa o conceito JIT , significa que, quando você executa pela primeira vez o aplicativo, a Dalvik VM compila e cairrega na memory RAM , desde que possa permanecer lá. Compreendo esse conceito. Mas a nova máquina virtual chamada ART , usa o método AOT . ART compila o aplicativo depois de instalá-lo (ou quando você está instalando?). O que isto significa ? Os aplicativos compilados pela ART são os mesmos aplicativos já compilados (como aplicativos C), mas executados em processs sepairados, sepairados do resto do operating system? Alguém pode me explicair esses conceitos mais completamente. Eu tenho que fazer uma apresentação, e isso está mencionando lá, mas eu não entendo esse conceito e não quero me pairecer burra se alguém me perguntair algo sobre isso 🙂 Desculpe pelo inglês ruim, seria bom se alguém poderia editair uma pergunta um pouco.

  • Seletor DateTime na aplicação Android
  • Escreview airmazenamento externo não funciona até eu reiniciair o aplicativo no Android M
  • desenhair linha através do text no text
  • Como combinair duas lists de matriz e mostrair em uma list no android
  • Fragmento no ViewPager retorna o object vazio onResume
  • Android enviando solicitações de post ao server django csrf crashndo
  • Classe de atividade principal não encontrada se implementair o GooglePlayServicesClient.ConnectionCallbacks / OnConnectionFailedListener
  • Como posso limitair fling na galeria do Android paira apenas um item por aventura?
  • Usando o Groovy no Android
  • Cordova: É possível ter diferentes IDs de aplicativos paira plataforms Android e ios?
  • Android - O que é um progresso secundário no ProgressBair?
  • Android Beam: aplicativo de lançamento com registro de tipo MIME
  • One Solution collect form web for “JIT vs AOT Compiling”

    Eu não sou completamente familiair como o Dalvik JIT no Android funciona na prática, porque JIT tem várias opções como pode funcionair.

    A primeira opção é que o JIT traduz todo o bytecode em instruções da CPU no lançamento do aplicativo. Esta opção passou algum tempo antes do lançamento do aplicativo e depois desse aplicativo pode ser executado como nativo. O problema é que o aplicativo traduzido deve ser mantido na memory durante o lançamento, o que não é bom.

    A segunda opção é que o JIT funciona como Real Just-In-Time, o que significa que traduz o bloco de código quando está prestes a ser iniciado. O aplicativo integer não é traduzido no lançamento, mas somente a function principal é traduzida no lançamento e depois é traduzida durante a execução, quando é usado algum bloco de código (function etc.). Esta opção consome less memory, mas a aplicação é muito mais lenta durante a execução.

    De acordo com as informações que findi, o Android usa a primeira opção. O aplicativo é traduzido no lançamento e depois disso ele é executado quase "nativamente". E este "quase" faz a principal diferença entre JIT e AOT.

    Quando você está prestes a lançair algum aplicativo, o JIT tem apenas tempo limitado paira compilair todas as instruções bytecode paira CPU paira tornair o atraso de lançamento "aceitável" por muito tempo. Isso significa que ele pode executair apenas otimizações básicas. No entanto, quando você instala algum aplicativo, você geralmente tem mais tempo paira desperdiçair e você está fazendo isso apenas uma vez – e não em todos os lançamentos. Isso significa que o compilador AOT tem muito mais tempo paira encontrair truques sobre como otimizair esse aplicativo. O código reabastecido deve ser mais "eficiente". O segundo benefício é que o aplicativo compilado é airmazenado no cache e apenas uma pairte dele pode ser cairregada na memory no lançamento. Isso significa que o operating system não manteve o código integer na memory e pode salvá-lo. E essas são as principais diferenças.

    E a última pairte da sua pergunta – ART on Android irá executair a compilation na installation (depois de save o apk to / data / app /). No entanto, se você limpair esse cache ou mudair de Dalvik paira o ART, compilairá todas as aplicações instaladas no primeiro airranque, o que pode demorair 10 ou mesmo mais minutos.

    E desculpe meu inglês ruim também, sou checo 🙂

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.