Force Garbage Collection in AS3?

前端 未结 8 2057
轻奢々
轻奢々 2020-11-30 07:33

Is it possible to programmatically force a full garbage collection run in ActionScript 3.0?

Let\'s say I\'ve created a bunch of Display objects with eventListeners a

8条回答
  •  臣服心动
    2020-11-30 08:31

    There is a new API for telling the GC that it might be a "relatively good moment" to collect.

    See the Adobe API docs for System.pauseForGCIfCollectionImminent

    And also this Adobe blog post from shortly after the method was introduced in Player version 11

    The method takes an "imminence" argument; basically, you feed in a low number (near 0.0) if you really want the collector to run, even if there has not been much activity (currently measured by bytes-allocated) since the last collection, and you feed in a large number (near 1.0) if you only want the collection pause to happen if we were already near the point where a collection would happen anyway.

    The motivation here is for situations in e.g. games where you want to shift the point where GC's happen by a small amount, e.g. do the GC during a change of level in the game, rather than two seconds after the player started exploring the level.

    One very important detail: This new API is supported by both the Release and the Debugger Flash Runtimes. This makes it superior to calling System.gc().

提交回复
热议问题