• 0
Авторизация  
Данил Абдрафиков

Утечка памяти в TNotificationCenter | TNotification

Вопросы

Версия: Delphi XE 10.2.3. Имеется метод:

procedure TNotificationStation.Notify(Caption: string; TextMsg: string);
var
  NotificationCenter: TNotificationCenter;
  Notification: TNotification;
begin
  // Win8 and newest
  if not TOSVersion.Check(6, 2) then
    MessageBox(0, PWideChar(TextMsg), PWideChar(Caption), MB_OK)
  else
  begin
    NotificationCenter := TNotificationCenter.Create(nil);
    try
      try
        Notification := NotificationCenter.CreateNotification;
        Notification.Name := 'TestPush';
        Notification.Title := Caption;
        Notification.AlertBody := TextMsg;
        NotificationCenter.PresentNotification(Notification);
      finally
        FreeAndNil(Notification);
      end;
    finally
      FreeAndNil(NotificationCenter);
    end;
  end;
end;

Чем больше пуш-сообщений вызывается, тем больше приложение начинает есть память. Один посланный пуш -> + ~100 кб. Проблема на Windows, платформы x64 и x86. 

Совсем не ощущается, что память высвобождается после отправленного пуша. Собственно, куда уходит память?

 

В папке с Samples лежит проект: \Samples\CPP\VCL\Windows 10 Notifications

Если понажимать на кнопку Show, ситуация такая же.

Изменено пользователем Данил Абдрафиков

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 ответ на этот вопрос

  • 0

На windows спокойно задействуется механизм отлова утечек.

Можно использовать куцый штатный (в  dpr первой командой указать ReportMemoryLeaksOnShutdown := True

или воспользоваться сторонними расширенными. Например - MadExcept имеет возможность показывать утечки памяти и ресурсов.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу