Чтобы продлить ответ и комментарий Yiannis Xanthopoulos и Hot Licks (извините, я еще не могу прокомментировать!), вы можете установить параметры VM, как этот пример:
-XX:+UseG1GC -XX:MinHeapFreeRatio=15 -XX:MaxHeapFreeRatio=30
В моем jdk 7 это затем освободит неиспользуемую память VM, если более 30% кучи становится свободным после GC, когда VM находится в режиме ожидания. Вероятно, вам нужно будет настроить эти параметры.
Хотя я не видел, чтобы это подчеркивалось в приведенной ниже ссылке, обратите внимание, что некоторые сборщики мусора могут не подчиняться этим параметрам, и по умолчанию java может выбрать один из них для вас , если у вас должно быть более одного ядра (следовательно, аргумент UseG1GC выше).
Обновление: для java 1.8.0_73 У меня есть JVM иногда выпускает небольшие суммы с настройками по умолчанию. Появляется, только если это ~ 70% кучи не используется, хотя .. не знаю, будет ли это более агрессивным, если бы ОС была низкой в физической памяти.
Я полагаю, что вы можете использовать тест контроллера типов вместо создания экземпляра вашего контроллера, а затем использовать метод RSpec assigns
( docs ) для проверки переменных вашего экземпляра, что-то вроде этого: [117 ]
RSpec.describe DashboardsController, :type => :controller do
context "with session" do
# ...
it "executes other functions" do
expect(assigns(:org_data)).not_to be_nil
end
end
end
https://relishapp.com/rspec/rspec-rails/docs/controller-specs
Также, если вы хотите проверить поток и выполнить отладку ваш код, вы можете использовать драгоценные камни pry
, pry-rails
и pry-nav
как указано @Marek Lipka.