Content-Length: 271089 | pFad | http://github.com/importcpp/WebServer/commit/19ec054d3dac9627f97ae3e32823039586f17227

09 daily update · importcpp/WebServer@19ec054 · GitHub
Skip to content

Commit 19ec054

Browse files
committed
daily update
1 parent a92b114 commit 19ec054

File tree

1 file changed

+2
-0
lines changed

1 file changed

+2
-0
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* **实现[LockFreeQueue](https://github.com/importcpp/WebServer/blob/master/webserver/lock/KLockFreeQueue.h)用于任务的异步添加与移除**,代替了常规的互斥锁管理临界区的方式 [这里的Lock free queue并没有解决ABA问题,但是针对这里单生产者单消费者模型,不会发生ABA问题]
2222
* 实现[环形缓冲区](https://github.com/importcpp/WebServer/blob/master/webserver/tcp/KRingBuffer.h)作为Tcp读取数据和写入数据的缓冲类,使得数据被读取之后不需要移动其余元素的位置来在尾部腾出空间,针对环形缓冲区读或者写空间可能会出现不连续的情况,在Read和Write的处理上,使用了readv和writev系统调用读取不连续的内存(只需要一次系统调用),解决了系统调用和拷贝带来的开销
2323
* 采用智能指针管理对象的资源
24+
* dev分支加入了Tcp Connection的**回收机制**,用于回收Tcp Connection对象中的资源,避免多次创建的开销
2425
* ......
2526

2627
## Develop and Fix List
@@ -31,6 +32,7 @@
3132
* 2020-03-26 Dev: 定义宏使得WebServer编译时确定Epoll的工作模式(ET/LT)!通过宏定义切换,方便压测对比实验
3233
* 2020-04-04 **Important Dev:** 针对单生产者单消费者模型的特点,临界区的保护机制增加了Lockfree queue,用于与互斥锁做性能对比!目前的Lockfree queue,暂未解决CAS问题,后期会利用Hazard pointer解决。
3334
* 2020-04-10 **Important Dev:** 针对muduo原本的Buffer类实现内部挪滕,增加数据拷贝开销的问题,实现了环形缓冲区类!设计的RingBuffer类的接口与Muduo原本的`vector<char>`接口保持一致,目前使用编译期宏定义的方式切换,方便之后做压测对比。之后会考虑设计一个KBuffer纯虚类,然后将RingBuffer和Muduo的Buffer作为作为KBuffer子类,利用C++多态,使用基类的指针指向子类的对象,这样来切换真正所使用的Buffer类.
35+
* 2020-04-22 Dev: 针对每一个新来的连接都会创建一个Tcp Connection,连接断开后Tcp Connection的资源又会被全部回收的问题,采取了Tcp Connection的回收机制,使用vector存储Tcp Connection,再次新来连接时,只用修改Tcp Connection管理的连接对象,即可实现Tcp Connection的重用
3436

3537
## Todo list
3638

0 commit comments

Comments
 (0)








ApplySandwichStrip

pFad - (p)hone/(F)rame/(a)nonymizer/(d)eclutterfier!      Saves Data!


--- a PPN by Garber Painting Akron. With Image Size Reduction included!

Fetched URL: http://github.com/importcpp/WebServer/commit/19ec054d3dac9627f97ae3e32823039586f17227

Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy