-
Notifications
You must be signed in to change notification settings - Fork 98
/
Copy pathHISTORY
101 lines (72 loc) · 2.48 KB
/
HISTORY
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
HISTORY for ZSUMMER
2010.8.29
单线程IOCP完成.
2010.9.29
封装windows下的线程接口
IOCP 支持多线程. one iocp - multi work thread方式
解决关闭时的资源安全回收问题.
2010.12.07
zsummer 1.0迭代版本结束
版本特点:
支持IOCP(非跨平台), 与libevent asio等相比:网络接口为高度封装 使用非常简洁但缺乏灵活性.
IOCP与多线程在底层高度耦合, 充分利用IOCP本身在多线程下所强调的高性能, 但用锁较多.
一个IOCP只支持一个监听端口, 在初始化时候传递端口参数.
回调给用户的OnMessage是在底层线程池中回调, 因此用户需要自己管理该接口带来的线程安全问题.
2011.03.15
跨平台的EPOLL/IOCP封装开始
2011.03.19
实现跨平台的互斥锁, 信号量, 线程类封装.
实现跨平台的时间获取 休眠 时间转换等utility小函数封装
2011.03.23
网络接口设计完成:一个IOServer对应一个监听端口的高层次封装.
日志类封装完成, 增加一些文件操作,split字符串处理, 内存队列等utility小函数封装.
2011.04.01
EPOLL ET模式的核心的封装完成, IOCP移植到新的接口下面, 日志采用环形队列实现已提高性能.
2011.04.09
zsummer2.0结束.
相对zsummer1.0 增加对linux epoll ET的支持.
版本特点:
支持IOCP与EPOLL, 与libevent asio等相比:网络接口为高度封装 使用非常简洁但缺乏灵活性.
IOCP与多线程在底层高度耦合, 充分利用IOCP本身在多线程下所强调的高性能, 但用锁较多.
一个IOCP只支持一个监听端口, 在初始化时候传递端口参数.
回调给用户的OnMessage是在底层线程池中回调, 因此用户需要自己管理该接口带来的线程安全问题.
2012.04.21
3.0 build.
2012.05.08
增加系统CPU 内存状态的监控模块.
增加windows下的minidump模块.
2012.05.28
IOCP实现.
2012.06.06
EPOLL实现, 摒弃ET模式 采用和proactor模式更匹配的LT.
2012.06.08
boost asio的压力测试客户端完成.
2012.07.18
3.0版本结束
版本特点:
采用proactor模型设计, one IOServer - one thread.
提供灵活的上层接口, 使用者可以根据不同的网络环境的选择恰当的上层模式.
IOServer与 socekt, connect, accept, 定时器等低耦合设计, 可以随意增加数量或者扩展接口.
多种环境下的压力测试:
vmware下EPOLL 单个连接每秒200字节数据 2.3万连接时候仅占27%CPU IOCP 单个连接每秒200字节数据 3万并发占用CPU 55% 单个连接10秒一个数据下均可轻松上100K并发 CPU占用5%左右 性能非常好.
2012.12.12
4.0build
2013.02.24
日志记录库在进行加强后开源已于24日开源 开源版本号0.9.0
2013.03.15
EPOLL采用实时的线程间消息通知机制.
2013.04.04
4.0版本结束
2013.04.13
添加定时器
2013.07.07
统计zsummer的延迟数据
2013.08.15
简化zsummer网络核心, 把消息分包 半包等处理转移给用户处理.
压力测试代码增加消息分包以及发送半包的处理, 简明测试代码中的消息处理部分.
2013.09.13
移出asio的测试代码, 测试客户端使用zsummer来实现.
2013.09.07
增加一个功能更强大的定时器实现.(目前定时器底层使用红黑树, 以后会考虑使用堆来实现)
2013.09.14
支持UDP