webgame开发中配置存储的介绍「建议收藏」

webgame开发中配置存储的介绍「建议收藏」webgame世界的基础数值都是事先配置好的,在运行的时候可以随时读取,是属于非常重要和必不可少的部分,而且数据量也不少。这样的数据在开发中的存储也就变得重要了,需要保证效率、性能、安全等,一般的做法有使用xml文本文件保存、静态数组保存和数据库直接保存。 xml文本文件保存优点: 共享性强,几乎每种语言都可以读取和解析xml文件,方便多语言混合开发。 结构清晰,xml的结构很

大家好,又见面了,我是你们的朋友全栈君。

webgame世界的基础数值都是事先配置好的,在运行的时候可以随时读取,是属于非常重要和必不可少的部分,而且数据量也不少。这样的数据在开发中的存储也就变得重要了,需要保证效率、性能、安全等,一般的做法有使用xml文本文件保存、静态数组保存和数据库直接保存。
 
xml文本文件保存
优点:

 共享性强,几乎每种语言都可以读取和解析xml文件,方便多语言混合开发。

 结构清晰,xml的结构很严谨,层次分明一目了然。

 灵活应用,xml可以灵活的定义结构。

 扩展性强,xml可以随时扩展结构。
缺点:

 转化较差,xml有自己的格式标准,跟其他数据结构不同,如常用的key和value的形式就不一定能转化。

 效率不高,xml相比key和value的存储,效率大大不如。
 
静态数组保存
优点:

 效率很高,因为静态数组是在程序启动的时候就已经加载了,在内存操作速度都很快。

 操作方便,每种语言对数组都有很方便的api。

 转化较强,数组是key和value的形式,可以很方便的转化成其他数据结构。
缺点:

 缓存有限,因为内存不能全部都用来存储配置,只能是用很小的一部分。

 交互不便,和其他语言交互必须要转化,其他语言的数组结构一样但是格式定义不一样需要转化。
 
数据库保存
优点:

 安全稳定,数据库本身就是一个服务,有策略来保证数据的安全和稳定。

 性能强大,强壮的事物管理,可并行,日志等。

 管理方便,相比其他方式,数据库管理是最方便的,有数据库客户端支持。

 共享性强,几乎每种语言都提供数据库操作的api,方便多语言混合开发。
缺点:

 消耗较大,数据库服务本身就很庞大,运行需要消耗内存、cpu等。

 效率不高,数据库查询出来的数据需要转化成数组等才可以操作。
 
每种方式都各有优缺点,看起来好像还有点互补,其实在实际的开发中可以根据业务的情况来决定选择合适的方式,甚至是混合使用,没有也不需要规定一定是用哪种,只要合适就好。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/133925.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月2日 上午10:40
下一篇 2022年5月2日 上午11:00


相关推荐

  • android Gradle 教程

    android Gradle 教程发现一个官方翻译后的gradle教程:http://avatarqing.github.io/Gradle-Plugin-User-Guide-Chinese-Verision/index.html

    2022年6月28日
    32
  • 推荐一款Python数据可视化神器

    推荐一款Python数据可视化神器一款动态数据可视化神器

    2022年7月6日
    26
  • python怎么运行代码_Python贪吃蛇代码

    python怎么运行代码_Python贪吃蛇代码0引言前几天,星球有人提到贪吃蛇,一下子就勾起了我的兴趣,毕竟在那个Nokia称霸的年代,这款游戏可是经典中的经典啊!而用Python(蛇)玩Snake(贪吃蛇),那再合适不过了???先通过下面这个效果图来感受下吧!1环境操作系统:WindowsPython版本:3.7.32需求分析我们先来回顾下贪吃蛇中的游戏元素及游戏规则。首先呢,需要有贪吃蛇、有食物;需要能控制贪吃蛇来上下移动获取食物;…

    2022年8月10日
    17
  • MYSQL 回表、索引覆盖、 索引下推[通俗易懂]

    MYSQL 回表、索引覆盖、 索引下推[通俗易懂]1.索引种类创建数据表&插入数据createtableuser(idint(10)auto_increment,namevarchar(30),agetinyint(4),primarykey(id),indexidx_age(age)USINGBTREE)engine=innodbcharset=utf8mb4;insertintouser(name,age)values(‘张三’,30),

    2026年4月13日
    4
  • Jenkins(7)参数化构建(构建git仓库分支)「建议收藏」

    Jenkins(7)参数化构建(构建git仓库分支)「建议收藏」前言当我们的自动化项目越来越多的时候,在代码仓库会提交不同的分支来管理,在用jenkins来构建的时候,我们希望能通过参数化构建git仓库的分支。下载安装GitParameter插件系统管理-

    2022年7月30日
    13
  • 深入理解HandlerThread

    深入理解HandlerThread以往遇到HandlerThread,对它的认识只是停留在MessageLooperHandler上,知道它有自己的消息队列,仅此而已。随着编程的深入,个人已不再满足表面上的理解,所以再次翻开HandlerThread源码,做梳理记录。HandlerThread集成Thread,并重写了Thread类的run方法(如果我们自定义一个类继承HandlerThread,就用不到run函数了):

    2022年7月12日
    23

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号