项目简介
FFLib 是一个轻量级的 C++ 框架,专为游戏服务器开发设计。它提供了丰富的工具集,涵盖网络通信、日志记录、线程管理、性能监控、数据库操作等功能,旨在简化游戏服务器的开发过程。该框架遵循 KISS(Keep It Simple and Stupid)原则,代码结构清晰,易于阅读和维护,适合高性能的分布式系统开发。
项目的主要特性和功能
网络模块
- 异步非阻塞网络通信:基于 Linux epoll(ET 模式)实现,支持高效的异步 I/O 操作,无第三方库依赖。
- 多线程支持:通过任务队列组件实现多线程编程,支持多种线程模型。
日志模块
- 异步日志记录:日志内容异步写入,避免阻塞主线程,保证服务器高响应性。
- 类型安全的格式化:支持类似
printf
的日志格式化,且具有类型安全。 - 灵活的日志配置:支持动态调整日志级别、输出目标,支持不同日志级别的颜色区分。
任务队列
- 多线程解耦:实现多线程之间的解耦,支持多种线程模型。
- 易于扩展:开发者可按需灵活调整线程模型。
性能监控
- 实时性能数据收集:通过宏定义自动记录函数执行时间,支持实时性能数据的收集和分析。
- CSV 格式输出:性能数据以 CSV 格式输出,便于后续分析和优化。
- 低开销:性能监控开销极低。
其他工具
- 单例模式:提供线程安全的单例模式实现。
- 信号处理:封装信号处理功能,便于处理系统信号。
- 定时器:基于 epoll 实现的高效定时器,适用于各种定时任务。
- 数据库操作:封装常见数据库操作,支持 SQLite 和 MySQL。
- XML 解析:提供基于 TinyXML 的 XML 解析功能。
安装使用步骤
- 编译项目:使用 CMake 或其他构建工具编译项目,确保系统已安装必要的依赖项(如 C++ 编译器和 Linux 系统库)。
- 包含头文件:在项目中包含 FFLib 的头文件,并根据需要使用相应的模块。
- 配置日志:通过
LOG.start()
初始化日志模块,设置日志路径、日志级别等参数。 - 使用任务队列:创建任务队列并绑定到线程,使用
produce()
方法提交任务。 - 性能监控:通过
AUTO_PERF()
宏自动记录函数执行时间,并通过performance_daemon_t
启动性能监控。 - 网络通信:使用
net_factory_t
创建网络连接,并通过msg_broker_service_t
处理消息。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】