Приложение Rails получает Illegal Instruction каждый раз, когда я меняю логику - PullRequest
1 голос
/ 03 марта 2011

У меня довольно большое приложение на Rails, которое становится все труднее разрабатывать. Среда разработки становилась все медленнее и медленнее, и WeBrick запускается вечно.

Самое странное, однако, что всякий раз, когда я изменяю код в логике (контроллеры или модели), сервер падает с «Нелегальной инструкцией», поэтому мне приходится перезапускать сервер каждый раз, когда я что-то меняю. Этого не происходит, когда я меняю взгляды.

Код работает просто отлично при каждом перезапуске, а также в нашей производственной среде.

Я довольно новичок в веб-разработке, занимаюсь этим всего год. Очень возможно, что я делаю какую-то ошибку, которая вызывает переполнение или что-то неисправное в двоичном файле, что процессор не может справиться с этим. Может ли это быть так, даже несмотря на то, что код, кажется, работает нормально и имеет правильный ожидаемый результат?

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

Это приложение Rails 3.0.4, использующее Ruby 1.9.2-p136 с базой данных MYSQL. Использование рельсового двигателя 'spree', который составляет основную часть кода. WEBrick - это сервер разработки.

1 Ответ

0 голосов
/ 03 марта 2011

Первое, что я хотел бы сделать, это отказаться от WEBrick, так как его производительность очень плохая. Вы найдете много статей в Интернете о том, почему это так, и почти все они советуют не использовать его в производственной среде, особенно если ваше приложение достаточно велико. Я мог бы предложить thin + nginx , так как я использую их и мне действительно не на что жаловаться, но окончательный выбор может зависеть от стольких параметров, что я настоятельно рекомендую вам сначала оформить документ себя на разные возможности там (и есть много!).

Что касается проблемы с недопустимыми инструкциями, пожалуйста, обратите внимание, что вы используете довольно «передовую» смесь RoR end Ruby с WEBrick, которая не известна своей стабильностью! Выбор более консервативного решения (например, Ruby 1.8.7?) И отказ от WEBrick должны действительно решить эту проблему.

...