发布于 2017-02-08 06:18:40 | 165 次阅读 | 评论: 0 | 来源: 网友投递
Voovan 高性能WEB服务器及网络通信框架
Voovan 是一个高性能异步网络框架和HTTP 服务器框架,同时支持HTTP客户端抓去、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是一个无任何依赖的独立工具包,希望能够方便广大开发者快速的实现应用。
经过近两个月的不泄努力,Voovan 终于到达了 RC 版本,距离正式版本的发布已经很近了。
本次更新带来47项优化、bug 修复、新增等内容。
本次更新主要对异常进行了修复,并且重点优化了 JSON 和 Socket 通信的性能.可以说相当优秀.
JSON 没有采用常规的 Token 形式的解析,减少内存占用,并且直接解析成 Map 或者 List 等大家熟悉的形式.
Socket 性能优化,优化了 MessageLoader 和 ByteBufferChannel的性能,采用接近于零拷贝来提升性能并且降低内存消耗.
性能测试【Voovan 参照 Jetty 的性能测试,中国框架一样很优秀】
增加对象池,PoolObject 为 Vestful 框架提供对象访问支持
本次更新的主要内容:
增加的内容
add: IoSession 和 SocketContext 增加 isOpen方法,用来判断区分连接状态判断对象是否打开
add: 消息截断类MessageSplitter 的 canSplite 函数的返回值有 boolean 改为 int 用来控制消息截断的长度
add: 反射类 TReflect 增加getAllExtendAndInterfaceClass方法用于一次提取所有父方法和继承的的类
add: JSON增加对反射类型的支持
add: 增加对象池
add: 增加了 MultiMap key 对应 list 值
imp: 增加 TString 新增函数的测试用例a
imp: 优化 JSON 解析的异常,对异常进行友好的展示,可以展示出错的 JSON 文本的位置
imp: 优化 JSON 解析算法,实现基于字节的一边遍历即可解析出 JSON 数据
imp: MessageLoader 最终优化,除了数组扩容,所有的字节数组操作都使用 System.arrayCopy 来提高性能
imp: 优化 MessageLoader 的实现,直接使用 session 中的 ByteBufferChannel减少字节操作提升性能
imp: 优化 ByteBufferChannel ,采用 Array 操作,大幅度提升性能
imp: 为 Socket 增加异步启动方法.
imp: TRelfect 优化构造函数,自动识别变量类型,寻找合适参数的方法
imp: 代码 sonar 优化
imp: 优化TReflect.getObjectFromMap方法,异常信息增加提示
imp: 反射 TString.toObject 方法优化
imp: 为了支持多机(集群)场景下ObjectPool的混用,将 id 改为 UUID 的形式
imp: 增加缓冲池大小的设置
imp: 优化异步通信
imp: WebServer命令参数修改成 Linux 规范形式
imp: 优化了首字母大写的算法
imp: PoolObject并发性能优化
imp: 优化 TReflect 的 getObjectFromMap 方法优化
imp: 优化 TString.toObject 和 JSONDecode.fromJSON方法
imp: 内存和性能优化
imp: 将 UDP 通信拆分成 UdpServerSocket 和 UdpSocket
fix: 修复 TFile.loadFileLastLines 读取时在读到文件头少了头部的一个字节
fix: 修复 UDP 通信的 bug
fix: 修复了在连接断开后,HttpSession 并未被从 SessionManager 中移除,导致内存没有被释放
fix: JSONDecode 类,对于起始为注释形式的 JSON 解析异常的 bug 处理 imp: 优化getObjectFromMap方法对于属性为 list 或者 map 时出现的类型转换异常
fix: HttpParser优化
fix: 修复直接读取的 bug
fix: 修复TReflect.getObjectFromMap中对 list 处理的 bug
fix: 异常优化
fix: WebServer模块、过滤器、路由配置加载异常输出错误优化.
fix: 修复 JSON 解析嵌套注释时的 bug.
fix: JSON 处理修复对注释的支持,原来正则替换注释会导致bug
fix: 线程池优化,当在一个进程内开多个 socket 时可能导致线程池提前关闭
fix: 将对象转换为JSON时双引号导致字符串违反规范的问题
fix: 修复静态资源文件加载失败的问题
fix: 反射 TReflect 类中 invokeMethod 方法增加自动通过参数选择方法
fix: ObjectPooll使用 hashcode 会出现相同 hashcode 的多个对象,且 hashCode 会发生改变,修改成使用固定增加的 ID 作为唯一标识
fix: 静态文件判断对包含文件扩展名的URL导致的路由匹配异常
fix: SingleLogger类会new 出多个相同目标文件的线程.
fix: 修复 UDP 接受消息异常的问题 EventTrigger 修改成可单元测试的,并优化并发线程模型
fix: 修复空指针问题
Voovan 是一个高性能异步网络框架和WEB服务器框架,同时支持HTTP客户端抓取、动态编译支持、数据库访问封装以及DateTime、String、Log、反射、对象工具、流操作、文件操作、异步双向通道等功能。旨在提供可靠、方便、可单元测试的代码。它是一个无任何依赖的独立工具包,希望能够方便广大开发者快速的实现应用。
开发教程:【Voovan一步步入门】