Pergunta

Eu estava bastante feliz por não fazer qualquer desenvolvimento web baseada cgi-bin .cgi. Mas geralmente aqueles que têm não parecem 'Miss' naqueles dias.

Um projeto que recentemente se juntou tem um problema de desempenho quando se lida com as páginas que precisam se comunicar com um sistema legado que tem uma API baseada cgi-bin. Esse sistema é COGNOS 7.

O feedback que eu recebi até agora é que 'COGNOS é lento', mas outros têm relatado grande sucesso com o Cognos, estou a pensar que tem mais a ver com o acesso via CGI-BIN e não o desempenho da Cognos em si .

Tudo o que disse quais são as principais questões que fez CGI-BIN com base de desenvolvimento web não-performance, difícil, etc ...

Foi útil?

Solução

A questão arquitetônica fundamental com sistemas baseados cgi-bin é que cada solicitação HTTP requer o servidor para iniciar um novo processo. Isso afeta o desempenho de várias maneiras:

  • É caro para iniciar o processo, como as páginas do sistema operacional do programa, configura o processo, etc.
  • Os recursos podem não ser compartilhados entre os pedidos, de modo que todas as conexões de banco de dados, etc. tem que ser configurado com cada pedido
  • o estado da sessão do usuário não pode ser preservado na memória, por isso tem que ser mantido com cada solicitação

Outras dicas

Para mim, a maior dor com CGI é que meus programas CGI tem que "aprender" tudo cada vez que iniciar. Se eles estavam correndo constantemente que não seria o caso, é claro ...

A principal desvantagem, IMHO, foi a mesma desvantagem que toda a codificação de nível inferior tem - em vez de programação no domínio do problema, você tinha que programa no domínio implementação. O resultado final foi, em sua essência, idênticos - uma resposta HTTP foi enviado a um cliente com base em uma solicitação HTTP. No entanto, ficar para que ponto era mais complicado muito a partir de uma perspectiva de programação.

Apache tem várias soluções para este para vários idiomas (por exemplo mod_perl ) para que um script só é invocado uma vez, então retido na memória para recuperação rápida. Há ainda uma abundância de sites dirigidos GCI-protocolo lá fora, muitos dos quais funcionam com razoavelmente baixa latência, se bem codificado e configurar.

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