Я не могу понять, почему мое приложение Rails (размещенное на Heroku (кедре)) продолжает выделять все больше и больше памяти. Если бы я не знал ничего лучше, я бы сказал, что это утечка памяти в Ruby/Rails, но поскольку я совершенно новичок в Ruby/Rails, я чувствую, что у меня что-то совершенно очевидно.
Я использую значения по умолчанию Rails, сгенерированные rails new
, и полностью обновленные драгоценные камни:
source 'https://rubygems.org'
gem 'rails', '3.2.8'
group :development do
gem 'sqlite3'
end
group :assets do
gem "sass-rails", "~> 3.2.5"
gem "coffee-rails", "~> 3.2.2"
gem "uglifier", "~> 1.3.0"
end
gem "jquery-rails", "~> 2.1.2"
group :production do
gem 'newrelic_rpm'
gem "pg", "~> 0.14.1"
end
Я использую default newrelic config. У меня есть нулевые модели и один контроллер, nothing_controller.rb
, который был сгенерирован с помощью rails generate controller nothing
:
class NothingController < ApplicationController
def index
end
end
Я удалил public/index.html
и добавил пустой views/nothing/index.html.erb
. Единственное, что я сделал с созданным приложением, это добавить маршрут к routes.rb
:
Nothing::Application.routes.draw do
root :to => "nothing#index"
end
Я совершил, подтолкнул его к Heroku, а затем написал быстрый script, который будет загружать мою страницу Heroku каждые 10 секунд. Об этом сообщает моя Новая реликвия:
Вот и все. Память просто продолжает расти, пока она не преодолеет предел Heroku 512 МБ. Код в этом приложении в значительной степени совпадает с кодом, который я видел в учебнике, которое я последовал. Я не понимаю, что я делаю неправильно.
Всем приветствуется любое руководство.
EDIT (9/12): Если это актуально, я использую ruby 1.9.
Код, который я использую, чтобы попасть на сервер (С#):
using (var wc = new WebClient())
for (;; Thread.Sleep(10000))
wc.DownloadString("http://vast-earth-9859.herokuapp.com/");
РЕДАКТИРОВАТЬ (9/13): попытаться отключить новую реликвию и посмотреть, все ли она R14.