Education Week の無料プロダクトが10月31日まで利用可能です

Object Pool Manager Plugin

Vlad Krepski - 2021/09/06

The object pool pattern is a software creational design pattern that uses a set of initialized objects kept ready to use – a "pool" – rather than allocating and destroying them on demand.

  • サポートされたプラットフォーム
  • サポートされたエンジンバージョン
    4.26 - 4.27
  • ダウンロードのタイプ
    エンジン プラグイン
    この製品には、コード プラグインが含まれており、ビルド済みのバイナリと Unreal Engine に統合される全ソースコードが完備されています。任意のエンジン バージョンにインストールし、プロジェクト毎に有効化することが可能です。

Links for videos:

Practical usage of Blueprint: https://youtu.be/cCQhsnOKCnE


Benefits

Object pooling can offer a significant performance boost in situations where the cost of initializing a class instance is high and the rate of instantiation and destruction of a class is high – in this case objects can frequently be reused, and each reuse saves a significant amount of time. Object pooling requires resources – memory and possibly other resources, such as network sockets, and thus it is preferable that the number of instances in use at any one time is low, but this is not required.

The pooled object is obtained in predictable time when creation of the new objects (especially over network) may take variable time. These benefits are mostly true for objects that are expensive with respect to time, such as database connections, socket connections, threads and large graphic objects like fonts or bitmaps.

In other situations, simple object pooling (that hold no external resources, but only occupy memory) may not be efficient and could decrease performance. In case of simple memory pooling, the slab allocation memory management technique is more suited, as the only goal is to minimize the cost of memory allocation and deallocation by reducing fragmentation.


テクニカルノート

Features:

  •  Easy to use in C++ and BP
  • Uses a set of initialized objects kept ready to use – a "pool" – rather than allocating and destroying them on demand
  •  World pools settings
  •  Performance
  • Easy implemented in any project


Code Module:

  •  "Name": "ObjectPool", "Type": "Runtime", "LoadingPhase": "PreDefault"


Number of Blueprints: 0

Number of C++ Classes: 5

Network Replicated: Yes

Supported Development Platforms: Win64, Win32, MacOS, Linux, PS4, XB-ONE, iOS, Android, Steam VR, Gear VR, Oculus, HoloLens

Supported Target Build Platforms: Win64, Win32, MacOS, Linux, PS4, XB-ONE, iOS, Android, Steam VR, Gear VR, Oculus, HoloLens

Documentation/usage: https://youtu.be/cCQhsnOKCnE

Discord: https://discord.gg/XVpxaKbJgV