如果我们不删除对象句柄会发生什么?它如何影响?我们怎么看? - 进步 4GL

What happens if we don't delete object handle? How it affects? How do we see that? - PROGRESS 4GL

我正在使用以下具有句柄的查询,但即使我 delete/not 删除句柄对象,我也看不到任何反应。但是每个人都说最后总是删除对象。为什么我们需要删除它们?如果我们不删除它们会怎样?我们怎么看?

finally:
  if valid-handle(hQueryTest)   then delete object hQueryTest no-error.
  if valid-handle(hQuerytestvalue) then delete object hQuerytestvalue no-error.
end finally.

OpenEdge 根本没有针对基于句柄的对象的基于引用计数的垃圾收集器。因此查询句柄指向的对象将永远保留在 AVM 的内存中。如果是在 AppServer 上,AppServer 进程的内存消耗可能会略微但稳定地增长。

OpenEdge 有 WIDGET-POOLs 的概念,可以支持内存管理。

您可以检查 DynObjects。* Log-entry-type 以深入了解动态对象的 Life-Time,handle-based 或 class-based。