Skip to content

Releases: alany-dev/webserver

2.0版本

Choose a tag to compare

@alany-dev alany-dev released this 19 Sep 13:42

完成功能

  • Application 启动
  • module 动态化加载
  • Mysql Redis
  • 轻量ORM工具
  • 支持 HTTP/2.0 服务

修复 Bug

  • 日志 Bug
  • Socket 读写 Bug

完成基本模块开发

Choose a tag to compare

@alany-dev alany-dev released this 09 May 02:08
  • 异步日志模块
  • 配置模块
  • 协程调度模块
  • 网络模块
  • HTTP模块

重构协程模块

重构协程模块 Pre-release
Pre-release

Choose a tag to compare

@alany-dev alany-dev released this 19 Apr 12:01

Features

  • 重新设计了协程类和上下文类,增加了 Context 类用于保存协程上下文
  • 实现了基于 boost::context 的汇编代码上下文切换功能,提高了协程切换的效率
  • 优化了协程的创建、销毁和重置逻辑,减少了资源消耗

Note

  • 修复RotatingFileLogAppender,FILE*变量未置空的bug
  • 测试内存池,将编译优化改为 -O2 效果明显

优化日志系统

优化日志系统 Pre-release
Pre-release

Choose a tag to compare

@alany-dev alany-dev released this 11 Apr 07:15

Features

  • 优化 RotatingFileLogAppender 日志追加器,整合功能,支持多文件循环写入
  • 修复 LogEvent 序列化和反序列化 bug
  • 增加 FiberCondition,支持 Fiber 的条件变量
  • 优化 BufferManager 类,提高了线程安全性,删除阈值交换限制

Note

  • 需要 WorkerGroup 限制添加任务的频率
  • 日志唤醒重新添加到调度队列,所以存在日志时序问题

实现内存池模块

实现内存池模块 Pre-release
Pre-release

Choose a tag to compare

@alany-dev alany-dev released this 15 Apr 07:39

Features

  • 新增 ThreadCache、CentralCache 和 PageCache 类
  • 实现内存分配和回收机制
  • 添加内存池性能测试,包括小对象分配、多线程测试和混合大小测试
  • 优化 fiber 栈分配,使用内存池替代 malloc

NOTE

  • 多线程情况下,表现良好
  • 其他情况,表现一般(不知道是为什么)

TODO待优化

  • 锁优化:CentralCache使用了atomic_flag作为自旋锁,可以考虑使用更高效的锁实现,例如读写锁或无锁数据结构,以减少竞争。
  • 内存回收机制:可以考虑添加垃圾回收机制,定期检查长时间未使用的内存块并归还给系统。
  • Span管理优化:PageCache中的Span管理可以使用更高效的数据结构,例如哈希表或跳表,以加速查找和合并操作。
  • 缓存局部性优化:考虑内存布局,使频繁访问的数据在缓存中更容易命中。
  • 内存分配策略优化:基于实际使用模式调整BatchNum和内存回收阈值。

实现异步日志功能

Pre-release

Choose a tag to compare

@alany-dev alany-dev released this 05 Apr 14:27

Features

  • 新增 Buffer 类用于缓存 ⭐
  • 新增 BufferManager 类用于管理缓冲区 ⭐⭐⭐
  • 新增 LogEvent 序列化和反序列化,用于缓存 ⭐
  • 新增 LoggerBuilder 类,实现建造者模式 ⭐
  • 新增 WorkerManager 类用于管理多个调度器 ⭐⭐⭐
  • 新增 FiberSemaphore 类,实现 Fiber 信号量 ⭐
  • 新增 config_init 更新配置文件格式,支持异步日志配置和调度器配置
  • 新增 FSUtil类 文件操作的 工具函数
  • 新增 noncopyable 类
  • 新增 SingletonHungry 饿汉式的单例模板实现
  • 优化 IOManager 类,增加 tickle 方法的参数,增加日志可读性
  • 优化全局静态单例 LoggerMgr 和 WorkerMgr 创建顺序问题 ⭐⭐
  • 优化多个模块之间的编译顺序问题 ⭐⭐⭐
  • 修改部分命名错误

TODO

  • 增加 网络模块的 封装 ⭐⭐⭐
  • 增加 循环写入文件 的 LoggerAppender ⭐
  • 增加 云存储的日志 LoggerAppender ⭐⭐⭐
  • 增加 调度器 中 线程池线程数量的 动态调整

基础模块完成

基础模块完成 Pre-release
Pre-release

Choose a tag to compare

@alany-dev alany-dev released this 04 Apr 08:53

Complete

日志模块,配置模块,线程模块,协程模块,调度模块,IO调度模块,定时器,HOOK。

TODO

补充 调度器 相关的配置项。
重构日志模块:添加双缓冲区实现异步日志模块。