项目的第一次迭代基本完工
我负责的是二个模块
1.内部协议栈
主要是做消息的发送,协议的变解码
基本框架:2个队列,3组工作线程和几个管理线程(超时线程,重连线程...),要发送和接收消息自然少不了Socket与编解码
2.Cache
主要二个方面,对象的编码与解码,内存与文件分页块存取
对象存取一开始就已经完工,基本没有什么问题,问题一直出现在编解码上面,开始我们用的是反射的方式去完成,在最开始只对基本数据类型,包装类,集合,数组,对像进行编解码,但是到了后面发现有很多问题没有想到。比如你Class的Field是个List接口,但需要传入一个ArrayList,在正常情况下是没有问题的,但是,当这个Field没有传值时,在解码时会去new List,要知道List是个接口是没法New出来的,所以又在码流上进行改进,把所以类的getName都传到码流中去。最后发现经过一系列的改进后我们的码流是越来越大,最终性能从13000/秒变成了4000/秒,用序列化可以到5000,所以最后还是用了序列化。
唉这就是重复造轮子的后果啊。。。。不过也学了不少东西