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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top