IMHO Non penso che il costo del ridimensionamento sarà diverso tra questi tre perché nessuno di essi ha "batterie di scalabilità" inclusi. Non vedo grandi differenze architettoniche tra queste tre scelte che potrebbero causare una differenza significativa nel ridimensionamento.
In altre parole, l'architettura dell'applicazione domina il modo in cui l'applicazione viene ridimensionata indipendentemente da quale delle tre lingue.
Se è necessario memorizzare la cache, si utilizzerà almeno memcached (o qualcosa di simile che si interfaccia con tutte e tre le lingue). Forse aiuterai la tua scalabilità usando nginx per servire direttamente da memcache, ma questo ovviamente non cambierà le prestazioni di php/perl/python/ruby.
Se si utilizza MySQL o Postgresql, è ancora necessario progettare correttamente il database per il ridimensionamento indipendentemente dalla lingua dell'app e qualsiasi strumento utilizzato per avviare il clustering/mirroring si troverà al di fuori della propria app.
Penso che in termini di utilizzo della memoria Python (con mod_wsgi daemon mode) e Ruby (enterprise ruby con passeggero/mod_rack) abbiano impronte decenti almeno paragonabili a PHP in fcgi e probabilmente meglio di PHP in mod_php (cioè apache MPM prefork + php in tutti i processi di apache fa schifo molta memoria).
Dove questa domanda potrebbe essere interessante è cercare di confrontare quelle 3 lingue con qualcosa come Erlang in cui si suppone abbiano scalabilità incorporata a basso costo automaticamente in tutti i processi di Erlang, ma anche in questo caso si avrà un collo di bottiglia del database RDBMS a meno che la tua app non si adatti perfettamente a uno dei database di Erlang come fare le cose, ad es CouchDB.
fonte
2009-07-22 06:16:17
Anch'io sono un po 'curioso ma dubito davvero che ci sia una risposta concreta a questa domanda. Ci sono troppe variabili. Design del sito, valore del tempo del programmatore rispetto al tempo della macchina, ecc. Penso che ci siano esempi di siti di grandi dimensioni per la maggior parte delle piattaforme, –