文章目录
  1. 1. 压力测试
  2. 2. 工作报告
  3. 3. 技术报告
    1. 3.1. 系统的架构
    2. 3.2. 开发工具
    3. 3.3. 相关技术点

压力测试

写模拟客户端并发很多线程来做的压测。主要测试了注册登录模块。

压测环境:

  • 服务器的机器配置:Linux,512M 内存,CPU 2.80 GHZ;
  • 模拟客户端的机器配置:Windows XP,256M 内存,CPU 2.80 GHZ;模拟客户端上还运行着 VS2005 和 QQ。

压测数据:

当时对测试结果的一点说明:服务器和客户端的配置都相当低,网络又相当的差,服务器的 Linux 对资源的设置好像也有的问题。在如此恶劣环境之下也能支持 1000 多连接并保持每秒,不好评价。

以现在的视角来看,当时的测试还是差点意思的。其实,是差很多意思,哈哈哈。比如基本的游戏逻辑线程没有做测试。

以下的工作报告和技术报告也是基本摘抄当时的相关文档。

工作报告

  • 上学期期中:
    • 确定项目,了解项目所需知识及开发工具。
      • 编程知识:Socket 编程、Windows SDK 编程。
      • 开发工具:VS2005、g++、GDB、Automake。
    • 复习《C++ Primer》、《Windows 程序设计》。
    • 编写需求分析。
  • 上学期期末:
    • 学习项目所需知识:
      • 《UNIX 环境高级编程》。
      • g++ 和 GDB 的使用。
      • Socket 编程。
      • MySQL C API 编程。
    • 编写了初步服务器程序、初步应用了 epoll 高效服务器网络模型、编写了客户端雏形。
    • 总结了一学期的学习和项目经历。
  • 下学期期中:
    • 学习项目所需知识:
      • 学习了《UNIX 网络编程》。
      • Automake 的使用。
    • 制定了世界的通信协议。
    • 编写了完整的服务器程序和客户端程序。
    • 初步测试了项目功能。
  • 下学期期末:
    • 压力测试。
    • 完善了文档,总结了一学年的工作学习。

技术报告

系统的架构

  • 服务器端:
    • 2 个登录注册线程
    • 1 个 epoll 网络线程 + 若干游戏逻辑线程
    • 1 个定时更新房间列表线程
  • 客户端采取大厅 + 五子棋双进程(方便以后扩展更多游戏)

开发工具

  • 服务器端:g++、GDB、Automake
  • 客户端:VS2005

相关技术点

  • Socket 编程:套接字编程是网络应用程序的基础。
  • MySQL C API 编程:操作mysql数据库的函数接口。
  • epoll + 多线程模型:
    • 相比于 select ,epoll 做事件触发最大的好处在于它不会随着监听 fd 数目的增长而降低效率。
    • 多线程是并发程序的基础 。
  • Windows SDK 编程:直接使用 Windows 的 API 编程,API 使编程更具灵活性。
  • 共享内存编程:不同进程之间通信的高效模式,因为他们在同内存里直接存储数据,仿佛在同一进程里对数据进行操作。
  • Windows 套接字共享编程:利用共享套接字,可以实现不同进程使用同一个套接。这样由大厅和游戏两个进程的客户端只需维护一个套接字,使开销降低了一半。
  • C++ STL 编程:STL 里的很多容器和算法很方便和高效,用它编程,节省很多时间,并使代码看起来很清晰。
  • 自定义消息协议编写:服务器和客户端的通信,由于各个状态的数据不一样,消息必须被标识。
文章目录
  1. 1. 压力测试
  2. 2. 工作报告
  3. 3. 技术报告
    1. 3.1. 系统的架构
    2. 3.2. 开发工具
    3. 3.3. 相关技术点