Язык веб-программирования для очень больших списков? - PullRequest
5 голосов
/ 17 июня 2010

По вашему опыту, какой лучший язык веб-программирования используется для сортировки и сравнения очень больших списков (т. Е. Десятков тысяч адресов электронной почты)?

Я наиболее знаком с PHP. Я думаю, что это могло бы сделать работу, но я не уверен в других языках и если бы мог быть сторонник по ставкам.

Спасибо!

Ответы [ 6 ]

16 голосов
/ 17 июня 2010

Можно ли выполнить сортировку внутри базы данных? Они предназначены для динамической сортировки и сравнения. Я бы посоветовал вам перейти к модели, которая позволяет БД обрабатывать такие действия.

Если вы действительно не можете использовать БД по какой-то причине, тогда вам следует сосредоточиться на алгоритмах, а не на языках. Выберите язык, основанный на других критериях (личное знакомство, поддерживает ли он другие ваши задачи, есть ли у него активное сообщество поддержки и т. Д. И т. Д.), И определите лучший алгоритм с учетом особенностей этого языка. Например, согласно некоторым обсуждениям в https://stackoverflow.com/questions/309300/defend-php-convince-me-it-isnt-horrible, PHP имеет относительно низкую производительность рекурсии.

А если серьезно, используйте для этого базу данных.

15 голосов
/ 17 июня 2010

Я буду хранить электронные письма в базе данных и использовать SQL для выполнения сортировки и поиска. Именно для этого были созданы базы данных, и у них будут интеллектуальные решения, которые превзойдут все, что большинство людей могут написать в коде.

2 голосов
/ 17 июня 2010

Это не зависит от языка программирования, это зависит от логики, скажем, будь то индексы или схемы таблиц и механизм кэширования.

1 голос
/ 17 июня 2010

Вы также можете использовать дерево, которое является древовидной структурой данных префикса - для сортировки в памяти.

Адреса электронной почты имеют ограничительный набор символов (a-z, 0-9, _, . и т. Д.), Поэтому в trieNode будут только эти символы.Это руководство по topcoder для trie - хорошая отправная точка, если вы еще не знаете о trie.

Вы должны пройти через все строки, чтобы построить дерево.

Поиск / сравнение занимает O (l) время, где l - длина сравниваемой строки.

Сортировка требует, чтобы вы пересекали все trieNode дерева дерева, используя DFS (поиск в глубину вначале) - O (| V | + | E |) время.

1 голос
/ 17 июня 2010

Язык обычно не имеет значения СЛИШКОМ много.Выберите тот, который вам удобнее всего.

Конечный продукт формируется строителем, а не инструментами.

0 голосов
/ 17 июня 2010

Самым быстрым будет скомпилированный cgi.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...