Tempo de início dos aplicativos

Iniciado por jnmoreno, 02 de Abril de 2015, 16:47

tópico anterior - próximo tópico

jnmoreno

Olá,

Sou novo no desenvolvimento de aplicativos para Linux.

Atualmente estou trabalhando em uma aplicação que dispara o Writer, Calc e Impress do Libreoffice. E notei que quando esses aplicativos são executados pela primeira vez, após o PC voltar de um boot, eles demoram mais para iniciar, já a partir da segunda vez eles são iniciados mais rapidamente. Eu acredito que isso esteja relacionado ao gerenciamento de memória do SO. É isso mesmo? Tem alguma relação com a memória cache do processador?

Alguém tem uma explicação mais técnica para me passar?

Se puderem me passar dicas de bibliografias ou artigos que tratem desse assunto, ficarei grato.

Só para conhecimento, estou desenvolvendo um aplicativo desktop em Java7, e o SO é o Ubuntu 14.04.

Desde já agradeço.

[]'s
Juliano

galactus

#1
Não sou desenvolvedor de aplicativos e nem programador. Este assunto merece várias aulas, já que seria preciso abordar muitos assuntos para ter completo entendimento do que acontece por debaixo do capô. Gerenciamento de memória, kernel, sistema de arquivos, linguagem utilizada no programa e por aí vai. São várias as variáveis que vão fazer esse programa ser carregado mais rapidamente ou lentamente.   Vou falar pra você o pouco que eu entendo.

O que você relata quanto aos aplicativos do LibreOffice é exatamente assim!

O sistema operacional, salvo alterações, não vai pré-carregar o LibreOffice após o boot.  Como ele é grande e complexo, e ainda por cima carrega o Java se instalado, na sua primeira inicialização é demorado mesmo.  Ele é carregado mais rápido da segunda vez por ter deixado parte das bibliotecas necessárias para o seu carregamento ainda na memória. A relação quanto ao cache do processador vai influenciar com certeza. O cache do processador serve para guardar dados e instruções. O processadores atuais vem aumentando muito a parte que cabe aos dados, então as coisas mais usadas pelo sistema ficam  armazenadas lá.  O kernel também tem influência direta nisso, pois além do gerenciamento da memória, dos escalonadores de disco e processos, ainda regula quanto tempo um processo pode ficar na memória mesmo depois de fechado. Também é o kernel que comanda a velocidade inicial do processador, se ele vai ou não fazer preempção, se ele terá baixa latência e  muitos outros fatores que farão o carregamento dos programas variar bastante!   Outras  coisas a serem levadas em consideração é que você como usuário final pode instalar outros programas que pré-carregam mais informações na memória e o próprio LibreOffice tem alguns recursos de pré-carregamento, ele podia inclusive ser pré-carregado após o boot, deixando sua inicialização quase que instantânea. Te digo podia pois não sei se a versão atual ainda possui tal recurso.

Então assunto é longo e complexo. Um bom lugar pra começar são os livros do professor do Linus, Andrew Tanenbaum: Sistemas operacionais modernos e Organização estruturada de computadores.  A literatura é muito vasta em todos os campos que você procurar, Kernel, programação e por aí vai.
BigLinux no Notebook  / Várias Distros Virtualizadas no PC.