From ec68dabc97521a7706344e7d038e9f08462f4fe8 Mon Sep 17 00:00:00 2001
From: hxp <ale99527@vip.qq.com>
Date: 星期二, 16 十二月 2025 10:26:34 +0800
Subject: [PATCH] 16 卡牌服务端(删除多余备档报错防范;)
---
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ObjPool.py | 10 ++++++++--
1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ObjPool.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ObjPool.py
index 062659f..41cbd50 100644
--- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ObjPool.py
+++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ObjPool.py
@@ -50,6 +50,7 @@
def acquire(self, obj_class, *args, **kwargs):
"""获取对象并记录其所属池"""
+ return obj_class(*args, **kwargs) # 关闭对象池
if obj_class not in self._pools:
# 如果池不存在,自动创建大小为0的无限制池
self.create_pool(obj_class, 0)
@@ -78,6 +79,7 @@
def release(self, obj):
"""释放对象并递归释放其嵌套对象池对象"""
+ return # 释放对象效率有点低,暂时关闭对象池,后续优化
obj_id = id(obj)
# 检查是否正在递归释放中
@@ -93,6 +95,9 @@
visited = set([obj_id]) # 初始化已访问集合
try:
+ ### 回收前处理,主要处理一些其他不需要释放的对象池对象,防止被连同误回收
+ if hasattr(obj, 'onRelease'):
+ obj.onRelease()
# 1. 递归释放嵌套对象池对象
self._recursive_release(obj, visited)
# 2. 释放当前对象
@@ -327,9 +332,10 @@
PyGameData.g_objPoolMgr = poolMgr
return poolMgr
-def OnMinute():
+def OnMinute(curTime):
"""每分钟执行,输出对象池状态"""
- GetPoolMgr().pool_status()
+ #if curTime.minute == 5: # 每小时的5分输出一次
+ # GetPoolMgr().pool_status()
return
## 使用示例
--
Gitblit v1.8.0