Язык на стороне сервера для процессорного процесса, интенсивно использующего память - PullRequest
0 голосов
/ 24 августа 2009

Какой хороший язык на стороне сервера для выполнения некоторых довольно ресурсоемких и ресурсоемких задач, который хорошо сочетается с php и mysql. В настоящее время у меня есть скрипт php, который выполняет некоторые вычисления на основе большого подмножества довольно большой базы данных, а затем обновляет эту базу данных на основе этих вычислений (1,5 миллиона строк). Текущая реализация очень медленная и занимает 1-2 часа в зависимости от других действий на сервере. Я надеялся улучшить это, и мне было интересно, что люди думают о хорошем языке для такого рода задач?

Ответы [ 3 ]

3 голосов
/ 24 августа 2009

Где узкое место? Запустите реальное профилирование и посмотрите, что именно вызывает проблему. Это ввод-вывод БД? Это процессор? Алгоритм неэффективен? Вы вызываете медленные библиотечные методы в тесном внутреннем цикле? Можно ли использовать предварительный расчет.

Вы в значительной степени спрашиваете, какое транспортное средство вам нужно добраться из пункта А в пункт Б, и вы предложили грузовик, автомобиль, велосипед, самолет, самолет и вертолет. Ответ не будет иметь смысла без дополнительного контекста.

2 голосов
/ 24 августа 2009

Язык - не проблема, ваша проблема, вероятно, , где вы делаете эти вычисления Похоже, вам лучше написать это на SQL, если это возможно. Это? Что ты делаешь?

0 голосов
/ 24 августа 2009

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

Если это так, вы можете написать настраиваемую функцию в c / c ++ для MySQL и выполнить функцию в хранимой процедуре.

Мы делаем это в нашей базе данных, чтобы повторно зашифровать некоторые чувствительные поля во время ротации ключей. Время вращения клавиш сократилось с дней до часов. Тем не менее, очень сложно поддерживать свою собственную копию MySQL. Мы искали альтернативы, но ничто не близко к эффективности этого подхода.

...