2010-06-17 9 views
5

En su experiencia, ¿cuál es el mejor lenguaje de programación web utilizado para manejar la clasificación y comparación de listas muy grandes (es decir, decenas de miles de direcciones de correo electrónico)?Lenguaje de programación web para listas muy grandes?

Estoy muy familiarizado con PHP. Creo que podría hacer el trabajo, pero no estoy seguro de otros idiomas y si hay un mejor apostador.

Gracias!

+1

¿Cuál es la aplicación que busca crear, que podría influir en la discusión? – Lazarus

+1

¿con qué frecuencia necesita ordenar esta lista? ¿Para qué se usa esto? ¿Qué * else * necesita el lenguaje? – jalf

+0

La intención de la aplicación web es administrar listas de correo electrónico. Solo tiene que ordenar alfabéticamente. Eso no será un problema, solo puedo ordenar la consulta de MySQL. Ahora que lo pienso, creo que todo se puede hacer a nivel de base de datos. Por ejemplo, cuando comparo dos listas, puedo simplemente crear una vista en la base de datos ... – littleK

Respuesta

15

Guardaría los correos electrónicos en una base de datos y usaría SQL para realizar ordenaciones y búsquedas. Para eso se diseñaron las bases de datos, y tendrán soluciones inteligentes que superarán a cualquier cosa que la mayoría de la gente pueda escribir en código.

+3

Además, si va a programar una solución, la mayoría de los problemas de rendimiento se reducirán a los algoritmos que utiliza para buscar/ordenar, que tendrán un impacto mucho mayor en el rendimiento que el idioma que usa. –

+0

Tiene sentido. Usaré la base de datos para realizar la mayoría de las operaciones. ¡Gracias! – littleK

1

El lenguaje por lo general no importa TOO mucho. Elige el que más te guste.

El producto final está conformado por el constructor, no por las herramientas.

16

¿Es posible hacer la clasificación dentro de una base de datos? Están diseñados para hacer una clasificación dinámica y comparación. Sugeriría que te muevas a un modelo que permita a la BD manejar este tipo de actividad.

Si realmente no puede usar una base de datos por algún motivo, entonces debe centrarse en los algoritmos sobre los idiomas. Elija un idioma basado en otros criterios (familiaridad personal, ¿admite sus otras tareas? ¿Tiene una comunidad de soporte activa, etc.?) Y descubra el mejor algoritmo teniendo en cuenta las peculiaridades de ese idioma. Por ejemplo, de acuerdo con algo de la discusión en https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible, PHP tiene un rendimiento de recursión relativamente pobre.

Pero en serio, use una base de datos para esto.

+0

Usaré la base de datos, ¡gracias! – littleK

2

Esto no depende del lenguaje de programación, depende de la lógica, digamos ya sea de índices o esquemas de tabla y mecanismo de caché.

0

Su más rápido sería un cgi compilado.

+0

Upvoting this. Escribir algoritmos eficientes en C arrojaría el mejor resultado. Sin embargo, no es mucho un lenguaje para programar en la web. Pero para buscar y clasificar, es de lejos el mejor (suponiendo algoritmos adecuados). Sin embargo, usar una base de datos con cualquier otro lenguaje de programación web real en el frente sería mucho más fácil y lo más probable es que resuelva el problema lo suficiente. – Kibbee

1

También puede usar un trie que es una estructura de datos de árbol de prefijo - para ordenar en la memoria.

direcciones de correo electrónico tienen conjunto de caracteres restrictiva (a-z, 0-9, _, . etc.), por lo que el trieNode sólo tendrían esos caracteres. Este topcoder tutorial en trie es un buen punto de partida si aún no sabes sobre trie.

Tienes que pasar por todas las cuerdas para construir el trie.

La búsqueda/comparación toma O (l) el tiempo donde l es la longitud de la cadena que está comparando.

La ordenación requiere atravesar todos los trieNodes del árbol trie usando DFS (búsqueda de profundidad en la primera búsqueda) - O (| V | + | E |) hora.

+0

Interesante. Voy a echar un vistazo, gracias! – littleK

+0

En cuanto a direcciones de correo electrónico y juegos de caracteres, consulte http://www.regular-expressions.info/email.html – RCIX

Cuestiones relacionadas