游戏服务器内存管理笔记

1:C++中对应数组越界的处理是。越界不报错也不提示。但是访问数组时出现野指针会报内存错误。也就是其它程序访问到了这段内存的话因为不对才报错


2:玩家离线数据保存于加载;从DB那边得到数据,DB发给引擎数据.引擎给进行装载处理。放进离线指针中
离线信息:
@CallTimers UpdateRankData 刷新了排行榜以后DB会发送引擎数据,重新更新排行榜。这是最新的内容。如果需要访问一个不再排行榜上面的用户则需要重新装载:
pUser= GetGlobalLogicEngine()->GetOfflineUserMgr().GetUserByActorId(ActorId, true); //如果不存在就去装载  所以也就是说每小时会进行一次更新
最主要的是访问空指针会报错


3:内存管理器概念:

    inline CUserItem* allocItem(const bool boNewSeries, LPCSTR file, INT_PTR line)
    {
        CheckItemAllocThread(file,line);
        CItemData* pItem = allocObject();

        if(pItem ==NULL)
        {
            OutputMsg(rmError,"alloc Item Fail");
            return NULL;
        }
        if(pItem->btUsed)
        {
            OutputMsg(rmError,"[ItemTrace],allocItem item reused item,oldfile=%s,oldline=%d,itemId=%d,count=%d,curFile=%s,curLine=%d",
                pItem->file?pItem->file:"" ,(int)pItem->line,(int)pItem->wItemId,(int)pItem->btCount,file,(int)line);

            OutputMsg(rmTip,"realloc a new item");
            return allocItem(boNewSeries,file,line);
        }

        if(boNewSeries)
        {
            memset(pItem, 0, sizeof(*pItem));
            //产生物品系列号
            pItem->series.t.time    = m_ItemTime;
            pItem->series.t.wServerId = (WORD)m_nServerIndex;
            pItem->series.t.wSeries = (WORD)m_nItemSeries;
            //单位时间内的系列号值递增
            m_nItemSeries++;
        }
        pItem->file = file;
        pItem->line =line;
        pItem->btUsed =true;
        m_nTotalAllocItemCount ++;
        AddItemLog(file,line);
        return (CUserItem*)pItem;
    }

    void DestroyUserItem(CUserItem *pUserItem, LPCSTR file, INT_PTR line)
    {
        CheckItemAllocThread(file,line);
        CItemData *pUserData = (CItemData *)pUserItem;
        if(pUserData->btUsed ==false)
        {
            OutputMsg(rmError,"[ItemTrace],DestroyUserItem item again,oldfile=%s,oldline=%d,itemId=%d,count=%d,curFile=%s,curLine=%d",
                pUserData->file?pUserData->file:"" ,(int)pUserData->line,(int)pUserData->wItemId,(int)pUserData->btCount,file,(int)line);
            return ;
        }
        pUserData->btUsed= false;
        if(m_nTotalAllocItemCount >0)
        {
            m_nTotalAllocItemCount --;
        }
        DecItemLog(pUserData->file,pUserData->line);
        freeObject(pUserData); 
    }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
内网安全解决管理隐患 员工通过不受监控的网络通道将企业的商业机密泄漏出去,给企业带来经济损失 员工所使用的笔记本电脑等移动设备若管理不善,很有可能携带有病 毒或木马,一旦未经审查就接入企业内网,可能对内网安全构成巨大的威胁。 上网聊天、网络游戏,使用电驴等工具载电影、游戏、软件等大型文件,听歌、看网络电影、浏览与工作无关的网站。 内网资产(CPU、内存、硬盘等)被随意更换,计算机数量越来越多,无法集中管理软、硬件数量无法精确掌握,盘点困难 入共享文档服务器,窃取机密文件,通过存储设备和通讯设备行外泄,比如:USB存储;通过MAIL、FTP、BBS等途径将单位内部信息泄密到外网。 WinShield主要功能和作用: 禁用设备: 1、禁止使用USB(禁用,记录接入和禁用时间) 2、允许使用公司指定的USB(接入和移出都有记录) 3、允许并监 视USB(除接入移出USB都有记录外,还能够记录USB文件操作:拷文件名、文件重命名、文件删除、文件修改及其操作时间) 4、重启阻断(一发现接入USB,计算机就立即重启).这四种策略能够在拔 了网线离开网络后仍然生效。在禁用USB情况下,能够继续使用USB打印机、鼠标和键盘等 5、同时也可以禁止修改IP地址。 禁止应用程序: 可以对指定的程序行禁止 上网限制: 1、可对指定的网站行禁止,或者采取反选,对指定的网站外的网站行禁止。 包括网站浏览限制、邮件收发限制、聊天行为限制、 流量限制、自定义限制、端口级控制; 2、所有的控制都可针对3层对象(一个网络、一个分组、 一个电脑),并可以定义时间规则,在指定的时间段内 行指定的限制。 屏幕快照并保留记录: 1、可以看到网络内员工正在操作计算机的最新画面; 2、可以查看到网内员工操作过的历史画面,并连续播放历史画面。 3、完整地记录屏幕历史,针对不同应用程序采用不同的记录频率 聊天内容监控: 对msn、qq等聊天工具的聊天内容行监控 外来电脑接入管理: 通过设置禁止外来电脑访问内部局域网共享资源、内部重要的服务器。 应用程序报告: 可分时间段查看某个员工打开某个应用程序的全部时间和活动的时间,以及所占的百分比。 A、应用程序日志和统计 1、记录应用程序的启动和退出 2、记录窗口切换和标题变化,跟踪电脑使用过程 3、分类统计应用程序的使用情况,评估工作效率 B、应用程序控制 1、限制游戏、聊天等程序的运行 2、禁止恶意程序的运行 资产管理: 1、 完整的软硬件资产信息 2、 详尽的资产变更记录 3、 增加自定义资产属性行辅助信息管理 4、 增加自定义资产对非电脑资产实现标准化管理 远程维护: 可以远程控制、登陆、注销、重启计算机,支持键盘输入和登录快捷键操作。 A、实时维护 实时查看客户端上的运行信息 远程分析客户端的运行状况和故障原因 B、远程控制 便于远程协助或者行操作示范 C、远程文件传送 远程传送文件, 辅助更快速地更新文件和收集故障样本 网络流量监控: A、网络流量统计 按网络地址以及类别统计和分析网络流量 按网络端口以及协议统计和分析网络流量 分时段分析网络资源的使用情况 B、网络流量控制 针对不同网络地址和协议限制不同的通讯流量 防止BT,P2P,网络视听或下载工具等占用大量带宽资源 事件日志: 详细记录网内计算机的操作窗口、报警记录、控制台发出的控制信息、浏览的网页、启动和关闭的应用程序、软件的添加与删除、系统的启动与关闭、应用程序的启动与关闭、硬件的添加与删除

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值