• legend分布式服务器集群中的数据库服务器的性能测试


    今天将把如下图所示测试用例进行测试:

    MainCache代表主线程是缓存操作
    DaemonORM代表守护线程是ORM入库操作,其中ORM开启了事务处理
    OnlyORM代表仅仅使用ORM直接入库操作

    本框架采用的是MainCache+DaemonORM的机制,即所有玩家对DB的任何操作都是在内存中进行,任何变更都会由守护线程后台通过ORM同步到DB中
    以下测试结果对MainCache+DaemonORM与OnlyORM进行了对比


    在里面有一万条记录的基础上做单条记录的操作:

    7、让数据库插入一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.008 ms
    11、让数据库查询一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0083 ms
    15、让数据库更新一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0108 ms
    19、让数据库删除一条记录时的消耗【MainCache+DaemonORM】 测试结果:0.387 ms 


    9、让数据库插入一条记录时的消耗【OnlyORM】 测试结果:1.6591 ms
    13、让数据库查询一条记录时的消耗【OnlyORM】 测试结果:189.6548 ms
    17、让数据库更新一条记录时的消耗【OnlyORM】 测试结果:189.9446 ms
    21、让数据库删除一条记录时的消耗【OnlyORM】 测试结果:193.748 ms

    在空记录的基础上做万条记录的操作: 

    8、让数据库插入一万条记录时的消耗【MainCache+DaemonORM】 测试结果:528.347 ms(7秒左右真正入库)
    12、让数据库查询一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.0321 ms
    16、让数据库更新一万条记录时的消耗【MainCache+DaemonORM】 测试结果:0.4955 ms (7秒左右真正更新)
    20、让数据库删除一万条记录时的消耗【MainCache+DaemonORM】 测试结果:43.587 ms (14秒左右真正删除) 

    10、让数据库插入一万条记录时的消耗【OnlyORM】 测试结果:7309.926 ms
    14、让数据库查询一万条记录时的消耗【OnlyORM】 测试结果:189.4596 ms
    18、让数据库更新一万条记录时的消耗【OnlyORM】 测试结果:7919.8537 ms
    22、让数据库删除一万条记录时的消耗【OnlyORM】 测试结果:14557.4186 ms

    从以上结果可以看出:OnlyORM的效率明显比MainCache+DaemonORM的方式低很多,我用的是Fluent NHibernate,如果用Dapper性能会更快,但是仍然是需要你手写sql语句,在生产环境中我采用MainCache+DaemonORM的方式,因为它效率特别快,当然Legend集群架构中是支持多个DBServer的,因此在不同DBServer之间的缓存同步处理此处不提及,可以参见《网络游戏大世界分布式自适应服务器架构详

     

  • 相关阅读:
    函数式语言(老师作业)
    session/cookie
    Linux根目录下各个目录的功能介绍
    Navicat12安装文件和破解补丁
    正则表达式验证示例
    RequestDispatcher接口示例
    hello2部分源码解析
    Introduction of Servlet Filter
    关于hello1中的web.xml解析
    Annotation解释
  • 原文地址:https://www.cnblogs.com/legendstudio/p/5136366.html
Copyright © 2020-2023  润新知