Por que meus programas em execução do meu cartão SD é tão lento?
-
22-07-2019 - |
Pergunta
Ao mover minha aplicação .NET Compact Framework para o cartão SD de um dispositivo Windows CE, as executa programa mais lento, em seguida, executá-lo a partir da memória interna.
Eu pensei, o start-up pode ser mais lenta, mas é todo o programa. Não há IO no cartão de memória.
Por que meu aplicativo tão lento e como é que as alças quadro compactos e cargas As Assembléias?
Solução
Tem a ver com a demanda-paginação. Seu aplicativo não pode ser executado diretamente do cartão SD, como SD não é media executáveis ??por isso tem que ser puxado para dentro RAM para ser executado. Windows CE normalmente não tem um monte de RAM, de modo que o carregador não puxar o seu aplicativo inteiro na RAM para ser executado. Claro, suas pilhas e pilhas estará em RAM, mas o código IL real na montagem em si é paginada na conforme necessário. Ele também é paginada quando o sistema decide que não precisa mais de uma página específica.
Esta paginação pode ter um impacto no desempenho, embora eu sou um pouco surpreso que ele é um grande impacto a menos que o aplicativo em si é muito grande (como se você tem um monte de recursos incorporados que está puxando para fora do conjunto).
Outras dicas
Eu concordo com a resposta anterior "procura-paginação" por ctacke.
Uma solução que você pode tentar é executar um programa gerenciador do SD-card que copia o executável real e DLLs do cartão para o disco rígido, e em seguida, executar o programa a partir do carregador. Em execuções subseqüentes o carregador pode detectar se a versão de disco rígido é até à data, e se assim apenas lançá-lo diretamente. Se a versão de disco rígido não está atualizado, o carregador irá novamente copiar arquivos out-of-date do cartão e, em seguida, executar o programa real.
Eu tenho feito isso antes de um programa carregado em um local de rede remota, e funcionou muito bem.
Alguns dispositivo irá travar o seu programa se a aplicação está no cartão SD. Acontece enquanto suspender-power-on dispositivo.