ColdFusion 8 Низкая производительность - PullRequest
1 голос
/ 17 апреля 2010

Мы запустили новое приложение CF8, и оно работает медленно. Тест, в котором мы используем ColdFusion (запросы в утилите базы данных), показывает нормальную скорость (80 мс). CF8 возвращает тот же запрос примерно за 60-80 секунд!

Я искал в Интернете и видел множество постов о CF8 и проблемах с производительностью, но у меня нет общего ощущения решения; просто много людей пробуют что-то и говорят, что у них нет проблем с CF7. Мы также видим нестабильность на сервере и некоторые ошибки, связанные со сборкой мусора и кучей памяти.

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

Есть ли какие-либо известные проблемы CF8 или очевидные ухищрения, которые мы должны попробовать? Если нам придется начинать все сначала и изучать новую среду, я никогда не уложусь в срок.

JoeBob

Ответы [ 4 ]

2 голосов
/ 18 апреля 2010

Хорошо, вот что я сделаю:

  1. Я бы поставил запрос LIMIT 1 или TOP 1 (какой у вас дБ), чтобы посмотреть, что будет потом.

  2. Попробуйте запустить запрос, который занял у вас 60-е годы, как единственную вещь на странице. Ничего не выводить, просто запустить запрос.

  3. Если вы видите некоторые проблемы с памятью и GC, отключите отладку, снимите все опции отладки в администраторе.

  4. Убедитесь, что на инструменте монитора, который поставляется с CF8, все опции отключены.

Если это не поможет, мы можем пойти дальше.

РЕДАКТИРОВАТЬ: Первое, что может быть проблемой, это количество возвращаемых записей. Во-вторых, вы выполняете много обработки данных, все события, происходящие во время выполнения страницы, регистрируются, если включена отладка. Я видел, как сервер заполнял почти 10 ГБ оперативной памяти при отладке, и тот же процесс занимал 40 МБ без него. Третий вариант - что-то не так с сервером или настройкой.

0 голосов
/ 26 апреля 2010

Спасибо всем за помощь ... Я думаю, что, как и предполагалось, проблема вовсе не в проблеме CF ... мы все еще запускаем тесты, чтобы рассчитать идентичный запрос в PHP с сопоставимыми условиями, но все мои опыт работы с не-веб-приложениями, и я просто не осознавал, что «выбирать» действительно означало «выбирать и передавать все данные на веб-сервер», даже без вывода на экран. Перенос более 20 000 записей (включая многие ненужные поля) занимал огромное количество времени. Ранее мне сказали, что сервер базы данных не был активен во время этой задержки, и оказалось, что это неверная информация. Мне пришлось обойти программиста и получить администратора и посмотреть на мониторы производительности, чтобы увидеть, что это было явно неправильно; передача данных занимала время и пропускную способность.

JoeBob

0 голосов
/ 20 апреля 2010

Вам нужны все возвращаемые столбцы? Вы используете SELECT *? Вы должны вернуть только те столбцы, которые вам нужны. Даже если вы не выводите данные, большая часть данных все еще передается из базы данных на веб-сервер.

0 голосов
/ 18 апреля 2010

Судя по вашему последнему объяснению, проблема связана с вашим запросом, а не с CF. Какую базу данных вы используете? У вас есть индексы для таблиц?

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