Pergunta

Eu estive discutindo com alguns amigos na universidade, e não podemos chegar a um ponto em que é o quadro com mais escalabilidade para aplicações web (e ainda muito rápidos).

Um chamadas para jsp, o outro para ruby ??outro para php e assim por diante. eu poderia pedir-lhe para esclarecer-nos sobre o quanto mais potencial de escalabilidade?

Tks, espero não estar duplicar qualquer coisa que eu tenho procurado, mas não encontrou qualquer pergunta anterior como esta.

Edit: Se você poderia apontar uma comparação sobre o que seria bom:)

Foi útil?

Solução 4

(cinco anos mais tarde ...)

Eu encontrei este post que benchmarks vários idiomas frameworks web dependentes. E agora esta praticamente responde à pergunta que eu tinha em 2008.

http://www.techempower.com/blog/2013 / 03/28 / quadro-benchmarks /

Outras dicas

Ruby e PHP não são estruturas webapp. Eles são línguas que são populares para o desenvolvimento web de programação.

De um modo geral, webapp escalabilidade não é uma propriedade de uma linguagem de programação e um determinado quadro webapp pode, no máximo, não dificultar escalabilidade. Boa escalabilidade é mais uma propriedade do design do aplicativo.

Há maneira são muitas estruturas webapp lá fora, para uma comparação ponto por ponto que é nada menos do enciclopédico.

Além disso, você pode enfrentar escalabilidade para uma determinada aplicação de várias maneiras. Uma maneira é ter um escopo bem definido e estreito e tem como objectivo o desempenho bruto incríveis, portanto, uma única máquina pode servir bazillion das unidades de trabalho. O melhor exemplo é ao redor Mailinator .

Outra maneira é para tornar mais fácil para servir cargas crescentes por "apenas" adicionando mais hardware. Praticamente qualquer quadro webapp-backed banco de dados pode ser escalado da seguinte maneira: basta adicionar mais servidores de aplicativos entre um balanceador de carga e um banco de dados back-end compartilhado. Se você enquadrar o problema desta forma, a sua principal preocupação é projetar o aplicativo para minimizar 1. contenção de banco de dados de carga 2. banco de dados.

A última maneira é projetar o sistema para ser insanamente paralelo todo o caminho. Google sendo o principal exemplo.

Em resumo:. Linguagens ou estruturas não fazem aplicações escaláveis, arquitetos de software fazer

EDIT: Para ser claro, a minha resposta está se concentrando em escalabilidade , que é a capacidade de lidar com cargas crescentes sem alterar design. Este é um estabelecimento diferente do que a velocidade de execução.

Algoritmos contará mais para a escalabilidade do que a linguagem utilizada.

Dito isto, haverá diferenças na velocidade de execução entre as línguas. Acredito que Java (Servlets e JSPs compilar para servlets, ou seja, código nativo) será mais rápido do que Ruby e PHP por alguma quantia). Há também uma tonelada de frameworks web para Java que irá incentivá-lo a fazer as coisas da melhor maneira para escalabilidade.

Também projetar seu aplicativo para que ele possa executar alegremente atrás de um balanceador de carga e escalabilidade se torna muito mais fácil :) Esta não é a minha área de especialização no entanto.

framework Web escalabilidade é um pouco de uma pergunta sobre o pensamento (alguns diriam concurso p155ing). A menos que você está recebendo bucks mega (boa sorte com que estes dias) e pode garantir milhões de visitantes por dia todas essas estruturas podem lidar bem com isso (como pode ASP.NET).

Pessoalmente, eu sempre escolher ASP.NET. É como escalável como qualquer coisa e tem as melhores ferramentas para desenvolvedores. A única desvantagem é de hospedagem e custos operacionais do sistema.

Você também pode dar uma olhada em " O que é mais rápido? PHP vs ASP vs JSP vs CGI etc "

Eu acho que Java / Java EE é o único "quadro" projetado do zero para desenvolver distribuída / aplicativos em cluster e que incentiva boas práticas para alcançá-lo a partir de especificações (EJB, JTA ...).

Mas, como sempre, depende. Este tipo de questões muitas vezes tendem a flame wars:)

Eu não tenho certeza qualquer uma dessas estruturas que você menciona será seriamente dificultar a escalabilidade.

Tudo depende da implementação.

Gostaria de concentrar-se obter o seu aplicativo web para funcionar bem em primeiro lugar, e depois se preocupar com escalabilidade quando se torna um problema. Em outras palavras "vamos atravessar essa ponte quando chegarmos a ela".

A: C ISAPI DLL (ou costume apache módulo):)

Mesmo assim, a sobrecarga do servidor web, analisar os pedidos HTTP e servir as páginas HTML faz com que o tempo de execução de seus aplicativos quase irrelevante. Se você executar seu aplicativo como um aplicativo CGI, então espere até menos desempenho.

Para escalabilidade na web, você está realmente falando sobre a adição de mais servidores e balanceamento de carga, tendo a carga fora do servidor, colocando o banco de dados (se muito usado) em um servidor separado.

O desempenho bruto dessas línguas são quase nada para se preocupar sobre. Use o que você deseja usar, que você será mais produtivo com. A preocupação sobre as outras questões que você vai correr em -. Io rede, segurança, exatidão

Vários bons já aponta. Meu ponto principal seria a seguinte: Uma pessoa que conhece por dentro e por fora python provavelmente será capaz de tornar o código mais escalável usando python que usando Java. E há muitas maciçamente grandes sites que usam todas as tecnologias que você mencionou, então eu não acho que há realmente alguma grande vantagem de qualquer maneira.

Para a maior parte, você deve ficar com o que você está familiarizado com a menos que haja uma razão realmente significativo para ir por outro caminho.

Aconteceu de eu deparar com essa questão e notou que alguma conversa sobre a velocidade, outros escalabilidade. Eu escrevi um post explicando a diferença:

http://www.fransekman.com/scalability -ou-desempenho-que-fazer-você-média /

"Um site alta escalabilidade é um site, que o desempenho de nível pode ser mantido pela adição de mais capacidade quando a carga aumenta". Isto pode ser conseguido em qualquer linguagem de programação e quase todo o quadro. Algumas estruturas têm funcionalidade interna, o que pode fazer algumas coisas comuns escalabilidade mais rápido de implementar.

A linguagem compilada geralmente correr mais rápido do que uma linguagem interpretada então eu acho que Ruby e PHP começar atrás da bola oito, mas Ele realmente se resume à forma como você usa a linguagem e como você estrutura o código.

Todos os idiomas terão suas próprias melhores práticas e padrões para construir aplicações escaláveis ??e muitas vezes, haverá compromissos, dependendo da funcionalidade do aplicativo proposto.

Se você quiser saber como os grandes sites usam LAMP para alcançar escalabilidade, você deve dar uma olhada em sharding de banco de dados .

A escolha de um framework web tem menos impacto sobre a escalabilidade (a capacidade de escala) do que a arquitetura do seu site. A maioria dos modernos frameworks web se prestam muito bem ao dimensionamento por isso é realmente sua configuração de implantação que precisa de atenção.

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