我们正在为 GAE 上的 Java 对象寻找一种高性能的紧凑型序列化解决方案。
native Java 序列化性能不佳,兼容性也很糟糕,即如果将字段添加到类或删除,它无法反序列化旧对象。
我们尝试了 Kryo,它在其他环境中表现良好,并且在添加字段时支持向后兼容性,但不幸的是,GAE SecurityManager 通过对递归中的每个方法调用添加检查来大大降低它的速度。我担心这可能是所有序列化库的问题。
有什么想法吗?谢谢!
最佳答案
当心,过早的优化是万恶之源。
您应该首先尝试其中一种标准解决方案,然后确定它是否符合您的性能要求。我确实在 GAE 上测试了几个序列化解决方案(java 序列化、JSON、JSON+ZIP),它们比数据存储访问快一个数量级。
因此,如果序列化数据需要 10 毫秒,而将其写入数据存储需要 100 毫秒,那么尝试优化这 10 毫秒几乎没有什么额外好处。
顺便说一句,你试过 jackson 吗?
此外,GAE 上的所有 API 调用都实现为对其他服务器的 RPC 调用,其中有效负载被序列化为 protobuf。
关于java - Google App Engine (GAE) 上的高性能 Java 对象序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20348361/