From e1dbd84e697445ea0c5f73075f56f97e5849ae53 Mon Sep 17 00:00:00 2001 From: hch <305670599@qq.com> Date: 星期五, 08 三月 2019 14:58:15 +0800 Subject: [PATCH] 6328 【后端】优化代码eval - json只适合字符串序列化,并且尽量用于非中文;建议使用cPickle 的dumps 和loads,协议用2,可支持所有类型,缺点为序列化后不可阅读 --- ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py | 11 +++++------ 1 files changed, 5 insertions(+), 6 deletions(-) diff --git a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py index b83b6f9..f9af576 100644 --- a/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py +++ b/ServerPython/CoreServerGroup/GameServer/Script/GameWorldLogic/GameWorldBoss.py @@ -50,8 +50,7 @@ import CrossBoss import time -import json - +import cPickle ''' ShareDefine.Def_UniversalGameRecType_BossInfo @@ -722,7 +721,7 @@ bossid = str(bossid) if playerid in self.bossAttentionDict: bossAttentionData = self.bossAttentionDict[playerid] - recordDict = json.loads(bossAttentionData.RecordData) + recordDict = cPickle.loads(bossAttentionData.RecordData) if isAdd: recordDict[bossid] = isAdd else: @@ -733,7 +732,7 @@ self.bossAttentionDict.pop(playerid) else: - bossAttentionData.RecordData = json.dumps(recordDict, ensure_ascii=False) + bossAttentionData.RecordData = cPickle.dumps(recordDict, 2) bossAttentionData.DataLen = len(bossAttentionData.RecordData) else: if not isAdd: @@ -741,7 +740,7 @@ bossAttention = PyGameDataStruct.tagDBPyBossAttention() bossAttention.clear() bossAttention.PlayerID = playerid - bossAttention.RecordData = json.dumps({bossid:isAdd}, ensure_ascii=False) + bossAttention.RecordData = cPickle.dumps({bossid:isAdd}, 2) bossAttention.DataLen = len(bossAttention.RecordData) self.bossAttentionDict[playerid] = bossAttention @@ -755,7 +754,7 @@ attentionData = self.bossAttentionDict.get(curPlayer.GetPlayerID()) if not attentionData: return - bttentionDict = json.loads(attentionData.RecordData) + bttentionDict = cPickle.loads(attentionData.RecordData) packData = ChPyNetSendPack.tagGCBossAttentionInfo() packData.BossList = [] for bossid, addState in bttentionDict.items(): -- Gitblit v1.8.0