`
hatrim
  • 浏览: 3495 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

SNS游戏-使用Json作为缓存数据格式

阅读更多

为了提高游戏响应速度和处理能力,游戏中大量使用Memcached作为游戏中间数据存储。我们的游戏是基于jsp/servlet进行研发的,而且 Java 的序列化和反序列化有一个比较恶心的问题,就是必须包名,类名,类的序列化ID完全一致才能反序列化成功,为了避免这个问题我们的游戏系统数据在存储到 Memcached前都会转换成json格式,虽然多占用了空间,但是方便不同应用和程序读写同一个缓存中的对象。
在java对Json格式数据的序列化和反序列化方面目前市面上有不少开源组件,我们对他们分别作了一次测试:
a) Gson对Java对象序列化反序列化
b) Jackson对Java对象序列化反序列化
c) org.json对Java对象序列化反序列化
d) spymemcached对Java对象序列化反序列化
上面的速度大致是这样的
c > b > d > a
b和d差别不大,b比d略微快一点
大概的速度比是
c:b:d:a=10:14:16:40

其中c速度最快,但是也是最麻烦的,对每种java对象的序列化反序列化都必须写相应的代码对各个属性进行转换,为此我们专门写了一个代码生成工具,能够根据数据表自动生成toJson,fromJson,toJsonList,fromJsonList的代码。

分享到:
评论

相关推荐

    Android---Douban-SNS.zip_android_android sns

    4. **数据绑定和MVVM架构**:现代Android开发倾向于使用数据绑定(Data Binding Library)和Model-View-ViewModel(MVVM)架构,以提高代码的可读性和可维护性。源代码中可能有相关的数据绑定表达式和ViewModel类。 ...

    SNS驴友系统

    "SNS驴友系统"作为一个专门为旅行爱好者设计的社交平台,融合了Android技术的精华,为开发者提供了一个宝贵的实践与学习资源。无论是对Android开发感兴趣的新手,还是寻求提升技术深度的资深工程师,都能在这个项目...

    vinci-sns-backend

    7. **缓存机制**:为了提升响应速度,可能会使用Redis或Memcached这样的内存数据存储进行缓存,减少对数据库的直接访问。 8. **消息队列**:RabbitMQ或Kafka等消息中间件可能被用于解耦系统组件,处理高并发场景下...

    PHP实例开发源码—php咸鱼sns正式版.zip

    7. **API设计**:SNS系统可能提供API供第三方应用或移动应用使用,这些API可能基于RESTful原则,用JSON作为数据交换格式。 8. **错误处理与日志记录**:为了确保系统的稳定性和可维护性,源码中会包含错误处理和...

    PHP实例开发源码—iWeb开源三剑客之iWebSNS.zip

    5. **RESTful API设计**:如果项目支持API接口,那么开发者可以学习如何设计符合REST(Representational State Transfer)原则的API,以及如何使用JSON格式进行数据交换。 6. **安全实践**:在开发过程中,安全是...

    NoSQL介绍、比较详细介绍NoSQL

    - 数据以文档形式存储,通常采用JSON等格式。 - 允许嵌套键值对,处理复杂数据时更高效。 - 示例包括CouchDB、MongoDB、SequoiaDB等。 4. **图形(Graph)数据库**: - 使用图形模型存储数据,适合处理复杂的关系...

    hci-social-backend-源码.rar

    这些接口应遵循RESTful原则,使用JSON作为数据交换格式。 7. **并发与负载均衡**: 高并发处理能力是社交应用的必备特性。源码中可能采用多线程、异步编程模型,以及负载均衡技术(如Nginx、HAProxy)来保证服务的...

    gdq-collector::inbox_tray: GamesDoneQuick 的数据收集实用程序

    还包括一个简单的 API,用于查询未出现在缓存 JSON 中的最近时间序列数据。 Lambda 套件具有 3 个阶段(三个独立部署的独立配置): API 阶段 ( dev / prod ) - 将最近的数据提供给面向公众的 REST 终端缓存阶段 ( ...

    AWSIoTPythonSDK-1.5.4-py2.py3-none-any.whl.zip

    -规则引擎:定义基于JSON数据的规则,当满足特定条件时,可触发操作,如将数据存储到S3或触发Lambda函数执行。 - 物理世界模拟(Shadow服务):创建一个设备的虚拟表示,允许在不直接与物理设备交互的情况下查询和...

    MongoDB介绍

    MongoDB使用BSON(Binary JSON)作为数据存储和传输的格式,BSON是一种类似JSON的二进制序列化文档格式,支持嵌套对象和数组。 #### 五、MongoDB与传统关系型数据库对比 - **数据模型**:MongoDB中的文档类似于关系...

    开源项目-jeffail-benthos.zip

    3. **数据清洗与转换**: 在数据进入存储或分析系统之前,Benthos可以作为数据清洗和格式转换的环节。 4. **流式API网关**: 作为API网关的一部分,Benthos可以接收来自多个源的请求,进行处理后再转发给后端服务。 ...

    PHP实例开发源码—cpf开源SNS问答社区源码 php版.zip

    8. **API接口设计**:如果项目支持移动应用或其他服务的集成,源码可能包含RESTful API的设计,展示如何通过JSON或XML进行数据交换,以及如何实现API版本控制和错误处理。 9. **测试与调试**:源码可能包含单元测试...

    validatesns:验证Amazon SNS消息的完整性

    validate ( decoded_json_message_from_sns )陷阱validate功能会在每次调用时下载签名证书。 出于性能原因,值得缓存证书-您可以通过传入get_certificate函数来做到这一点。 这需要一个url ,并返回证书内容。 您的...

    sns:简单的DNS服务器

    **配置文件(config.json)**是JSON格式的,这是一种轻量级的数据交换格式,易于人类阅读和编写,同时也易于机器解析和生成。在DNS服务器的上下文中,配置文件可能包含服务器的监听IP、端口号、DNS区域文件的位置...

    开源社交系统ThinkSNS V4.2版本发布

    - **代码示例**:例如,在“apps/<appname>/manage.json”文件中可以配置静态资源的缓存路径等信息,这有助于开发者更好地理解和定制应用。 综上所述,ThinkSNS V4.2版本的发布标志着该开源社交系统在技术、功能、...

    laravel_sns:s

    SNS(Social Networking Service)通常指的是社交网络服务,所以“laravel_sns:s”可能是一个使用 Laravel 框架开发的社交网络平台项目。该项目可能包含了实现用户互动、内容分享、好友关系等功能的核心代码。 在 ...

    搭建无服务器应用的10个秘密.pdf

    - **响应信息**:Lambda函数处理完成后,返回一个JSON格式的数据给API Gateway,该数据会被解析并返回给客户端。 #### 七、优化性能 - **缓存策略**:合理使用缓存可以显著提高性能,减少不必要的Lambda函数调用。...

    ExpressSNS:开发SNS使用Express

    ExpressSNS会涉及用户认证和授权机制,如JWT(JSON Web Tokens)或session管理,以确保用户数据的安全。此外,还需要防止XSS(跨站脚本攻击)和CSRF(跨站请求伪造)等常见网络安全威胁。开发者需要了解如何设置和...

    EDEM:20210222 EDEM SNS项目

    后端和前端之间的通信可能通过RESTful API实现,使用JSON格式交换数据。 4. **安全性**:考虑到用户隐私和数据安全,项目可能采用了Spring Security来处理认证和授权。HTTPS协议用于加密通信,防止数据在传输过程中...

    Amazon云计算服务与解决方案全面深入介绍

    - **消息格式**:支持文本、JSON等多种消息格式。 - **多协议支持**:支持HTTP、HTTPS、电子邮件等多种协议。 **特点** - **灵活性**:可以向多个协议和终端发送消息。 - **可扩展性**:支持大量订阅者。 **定价**...

Global site tag (gtag.js) - Google Analytics