Найден в GWT версии:GWT ссылки утечка памяти для запроса построителя (порожденной GWTP действий сервера вызовов)
GWT - 2.4.0
Встречающиеся на OS/Browser:
Windows 7 с IE9
Подробное описание (пожалуйста, как можно более конкретным):
Из исключения кучи произошло после того, осталось GWT App для запуска на ночь, Диагностика с MemoryAnalyzer, обнаружил, что при сбое есть 1,6 миллиона экземпляров com.google.gwt.http.client.RequestBuilder, каждый размер которых составляет 1208 байт.
Дальнейшая проверка показывает мне, что эти запросы являются вызовом GWT Action для сервера для проверки состояния текущего состояния сервера. опрос триггера по com.google.gwt.user.client.Timer каждые 1 сек
Кратчайший фрагмент кода, который демонстрирует вопрос:
@Inject
public MainPresenter(final EventBus eventBus, final MyView view,
final MyProxy proxy, PlaceManager placeManager,
final DispatchAsync dispatcher) {
super(eventBus, view, proxy);
this.placeManager = placeManager;
this.dispatcher = dispatcher;
getView().setUiHandlers(this);
setupSeverHealthQuerier(dispatcher);
}
private void setupSeverHealthQuerier(final DispatchAsync dispatcher) {
int delayInSec = UserPreference.HealthCheckInterval;
serverHealthChecker = new Timer() {
@Override
public void run() {
dispatcher.execute(new GetServerHealth(ServerName.ReplayServerGTU),
new AsyncCallback<GetServerHealthResult>() {
@Override
public void onFailure(Throwable caught) {
caught.printStackTrace();
}
@Override
public void onSuccess(GetServerHealthResult result) {
getView().setServerHealthPic(result.getHealth());
}
});
}
};
serverHealthChecker.scheduleRepeating(delayInSec * 1000);
}
Вот отчет Heap:
http://i.stack.imgur.com/C2qJy.png
- 10 правило репутации на пост
oops, Итак, мой вопрос в том, почему эти конструкторы запросов все еще находятся в куче слева, чтобы создать, и как я могу решить проблему утечки памяти. Спасибо за помощь заранее –