webgame世界的基础数值都是事先配置好的,在运行的时候可以随时读取,是属于非常重要和必不可少的部分,而且数据量也不少。这样的数据在开发中的存储也就变得重要了,需要保证效率、性能、安全等,一般的做法有使用xml文本文件保存、静态数组保存和数据库直接保存。
xml文本文件保存
优点:
共享性强,几乎每种语言都可以读取和解析xml文件,方便多语言混合开发。
结构清晰,xml的结构很严谨,层次分明一目了然。
灵活应用,xml可以灵活的定义结构。
扩展性强,xml可以随时扩展结构。
优点:
共享性强,几乎每种语言都可以读取和解析xml文件,方便多语言混合开发。
结构清晰,xml的结构很严谨,层次分明一目了然。
灵活应用,xml可以灵活的定义结构。
扩展性强,xml可以随时扩展结构。
缺点:
转化较差,xml有自己的格式标准,跟其他数据结构不同,如常用的key和value的形式就不一定能转化。
效率不高,xml相比key和value的存储,效率大大不如。
转化较差,xml有自己的格式标准,跟其他数据结构不同,如常用的key和value的形式就不一定能转化。
效率不高,xml相比key和value的存储,效率大大不如。
静态数组保存
优点:
效率很高,因为静态数组是在程序启动的时候就已经加载了,在内存操作速度都很快。
操作方便,每种语言对数组都有很方便的api。
转化较强,数组是key和value的形式,可以很方便的转化成其他数据结构。
优点:
效率很高,因为静态数组是在程序启动的时候就已经加载了,在内存操作速度都很快。
操作方便,每种语言对数组都有很方便的api。
转化较强,数组是key和value的形式,可以很方便的转化成其他数据结构。
缺点:
缓存有限,因为内存不能全部都用来存储配置,只能是用很小的一部分。
交互不便,和其他语言交互必须要转化,其他语言的数组结构一样但是格式定义不一样需要转化。
缓存有限,因为内存不能全部都用来存储配置,只能是用很小的一部分。
交互不便,和其他语言交互必须要转化,其他语言的数组结构一样但是格式定义不一样需要转化。
数据库保存
优点:
安全稳定,数据库本身就是一个服务,有策略来保证数据的安全和稳定。
性能强大,强壮的事物管理,可并行,日志等。
管理方便,相比其他方式,数据库管理是最方便的,有数据库客户端支持。
共享性强,几乎每种语言都提供数据库操作的api,方便多语言混合开发。
优点:
安全稳定,数据库本身就是一个服务,有策略来保证数据的安全和稳定。
性能强大,强壮的事物管理,可并行,日志等。
管理方便,相比其他方式,数据库管理是最方便的,有数据库客户端支持。
共享性强,几乎每种语言都提供数据库操作的api,方便多语言混合开发。
缺点:
消耗较大,数据库服务本身就很庞大,运行需要消耗内存、cpu等。
效率不高,数据库查询出来的数据需要转化成数组等才可以操作。
消耗较大,数据库服务本身就很庞大,运行需要消耗内存、cpu等。
效率不高,数据库查询出来的数据需要转化成数组等才可以操作。
每种方式都各有优缺点,看起来好像还有点互补,其实在实际的开发中可以根据业务的情况来决定选择合适的方式,甚至是混合使用,没有也不需要规定一定是用哪种,只要合适就好。