XML、JSON、ProtocolBuffer、Lua特点比较
近期手上项目需要选择一配置信息保存方案,现就XML、JSON、Protocol Buffer(以下简称PB)、Lua做一次横向对比。首先要说明的是Lua严格来说属于嵌入式脚本语言,而XML、JSON、PB都属于数据交换格式,两者之间不属于同类别,按理说不应该放在一起比较,但是就项目需求来讲,Lua也能够实现配置信息保存。故而将Lua和XML、JSON、PB放在一起做横向对比。
XML | JSON | PB | Lua | |
数据结构支持 | 复杂结构 | 简单结构 | 较复杂结构 | 复杂结构 |
数据保存方式 | 文本 | 文本 | 二进制 | 文本 |
数据保存大小 | 大 | 一般 | 小 | 一般 |
解析效率 | 慢 | 一般 | 快 | 稍快 |
语言支持程度 | 非常多 | 多 | C++/Java/Python | 多 |
开发难度?繁琐? | 繁琐 | 简单 | 简单 | 相对繁琐 |
学习成本 | 低 | 低 | 低 | 高 |
适用范围 | 数据交换 | 数据交换 | 数据交换 | 数据保存及脚本处理 |
最终我的选择为Lua,理由如下:
首先配置文件可能很复杂;其次需要脚本功能;Lua性能较好;语言支持程度好,本项目除了用c++做主要开发外,可能还有大量辅助软件开发,就要求快速开发,性能适用就好,因此可能会选择其他语言做快速开发。而lua的多语言支持还可以。