IForeGarbageCollector.RequestFullClean

Синтаксис Fore

RequestFullClean([MaxDuration: Integer = -1]);

Синтаксис Fore.NET

RequestFullClean(MaxDuration: Integer);

Параметры

MaxDuration. Время выполнения процесса сборки мусора в секундах.

Описание

Метод RequestFullClean запускает полный цикл сборки мусора.

Комментарии

В отличие от метода RequestPartitialClean, который производит только одну итерацию сборки мусора, RequestFullClean будет повторять попытки очистки пока из памяти не будут удалены все неиспользуемые объекты. Например, есть объект B, который зависит от объекта A. Объект A помечен как неиспользуемый. После выполнения метода RequestPartitialClean объект A будет удален из памяти, а B останется. При выполнении метода RequestFullClean после первой итерации будет удален объект A, на второй итерации будет удалён объект B и так далее.

По умолчанию параметр MaxDuration не задан, при этом сборка мусора выполняется пока в памяти не останутся только те объекты, которые отмечены как используемые. Если задать параметр MaxDuration и сборщик мусора не успеет завершить свою работу за указанное время, то процесс будет остановлен и продолжен при повторных вызовах метода или когда наступят условия, необходимые для автоматического запуска процесса сборки мусора.

Пример Fore

Sub UserProc;
Var
    GC: IForeGarbageCollector;
Begin
    GC := 
New ForeGarbageCollector.Create;
    GC.RequestFullClean(
1);
End Sub UserProc;

При выполнении примера будет осуществлён запуск полного цикла сборки мусора. На сборку мусора будет отведена одна секунда.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Fore;

Public Shared Sub Main(Params: StartParams);
Var
    Svc: IForeServices;
    Run: IForeRuntime;
Begin
    Svc := Params.Metabase 
As IForeServices;
    Run := Svc.GetRuntime();
    Run.RequestFullClean(
1);
End Sub;

См. также:

IForeGarbageCollector