Skip to content

事件池化监听 ^1.3.0

常规的动态事件监听 ListenForEvent / UnListenForEvent 受框架及网易的复杂封装导致调度开销较大 在高频率使用时性能开销较大 因此诞生了池化事件组

python
from QuModLibs.Modules.EventsPool.Server import POOL_ListenForEvent, POOL_UnListenForEvent
# from QuModLibs.Modules.EventsPool.Client import POOL_ListenForEvent, POOL_UnListenForEvent

演示代码

python
from QuModLibs.Modules.EventsPool.Server import POOL_ListenForEvent, POOL_UnListenForEvent

def TEST_FUNC():
    pass

for _ in range(100000): # 模拟高频场景
    # 注: 该函数会自动判断重复 同一个回调函数不会在单个事件下注册多次
    POOL_ListenForEvent("OnScriptTickServer", TEST_FUNC)
    POOL_UnListenForEvent("OnScriptTickServer", TEST_FUNC)

注意事项

事件池内部使用set管理 因此这是无序的 请不要试图评估相同事件下多个函数的触发顺序

Released under the BSD3 License