Pt:Melhorando o Desempenho
From PRADO Wiki
Esta página ainda não foi traduzida. Contribua você também para tradução do tutorial do PRADO.
Contents |
Melhorando o Desempenho
O desempenho de aplicativos web é afetado por diversos fatores. Acesso a banco de dados, operações do sistema de arquivos, limite de banda da rede são todos fatores que afetam em potencial. PRADO tenta reduzir o impacto no desempenho causado pela estrutura.
Caching
PRADO fornece uma técnica de caching generica usada em diversas partes do núcleo da framework. Por exemplo, quando o cache é habilitado, TTemplateManager salvará templates analisados em cache e os reutilizará nas requisições seguintes. O TThemeManager adota uma estratégia similar para tratamento e análise dos temas.
Habilitar o cache é muito simples. Basta adicionar o módulo cache na configuração da aplicação e PRADO cuidará do resto.
<modules> <module id="cache" class="System.Caching.TSqliteCache" /> </modules>
Desenvolvedores também podem tirar vantagens de técnicas de caching em suas aplicações. A propriedade Cache de TApplication retorna o módulo cache plugado quando existe. Para salvar e recuperar no cache use os seguintes comandos,
if ($application->Cache) { // salva dados no cache $application->Cache->set($keyName, $dataItem); // recupera dados do cache $dataItem = $application->Cache->get($keyName); }
onde, $keyName deve ser um string que identifica unicamente o ítem do dado armazenado no cache.
Utilizando o pradolite.php
Incluir muitos arquivos de script PHP pode impactar na performance do aplicativo significativamente. Classes PRADO são armazenadas em arquivos diferentes e ao processar uma página requisitada, pode incluir uns dez arquivos de classes. Para aliviar este problema, em cada release do PRADO um arquivo chamado pradolite.php também é incluido. O arquivo é uma fusão de todos os arquivos de classes do núcleo PRADO sem comentários e com o registro de mensagens removido.
Para usar pradolite.php, em seu arquivo de entrada do aplicativo, substitua a inclusão de prado.php com pradolite.php.
Alterando o modo da Aplicação
Reduzindo o Tamanho da Página
Como padrão, o PRADO armazena o estado de página (page state) em campos escondidos (hidden) na saída HTML. O estado de página pode ser muito grande quando usados em controle complexos, como o "TDataGrid". Para reduzir o tamanho da página transmitida pela rede, podem ser usadas duas estratégias.
Primeiro, você pode desabilitar o viewstate atribuindo false para "EnableViewState" para a página ou alguns controles da página que não tenham interação com os usuários. O viewstate é principalmente usado para manter-se a par do estado da página quando um usuário interage com aquela página/controle.
Segundo, você pode utilizar um armazenamento diferente para o estado de página. Por exemplo, pode ser armazenado em sessão, que armazena no servidor as informações e poupa tempo de transmissão. A propriedade "StatePersisterClass" na página determina que classe de persistência de estado utilizar. Por padrão, é usado "System.Web.UI.TPageStatePersister" para armazenar os dados em campos tipo hidden. Você pode modificar esta propriedade para uma classe própria, desde que a nova classe de persistência implemente a interface "IPageStatePersister". Você pode configurar esta propriedade em vários lugares, como na configuração da aplicação ou na configuração da página usando as tags <pages> ou <page>.
<pages StatePersisterClass="MyPersister1" ... > <page ID="SpecialPage" StatePersisterClass="MyPersister2" ... /> </pages>
Note que no código acima a "SpecialPage" irá utilizar "MyPersister2" como classe de persistência, enquanto o resto das páginas irão usar "MyPersister1". Portanto, você pode ter estratégias de persistência diferentes em suas páginas.
Outras Técnicas
Técnicas de servidores de cache são provadas serem muito eficientes e melhorar o desempenho de aplicações PRADO. Por exemplo, temos observado que utilizando o Zend Optimezer, o RPS (request per second) de aplicações PRADO pode ser incrementado mais de dez vezes. Naturalmente, o custo disto é a saída, enquanto as técnicas caching de PRADO sempre asseguram a exatidão da saída.

