Java项目中的DSL Json太慢
在Java项目中实现dsljson时,我发现这是不正确的。这是相当缓慢和难以实施的 我创建了一个新对象,它从Java项目中的DSL Json太慢,java,json,jackson,dsl,Java,Json,Jackson,Dsl,在Java项目中实现dsljson时,我发现这是不正确的。这是相当缓慢和难以实施的 我创建了一个新对象,它从JsonObject public static class abc implements JsonObject { public final int x; public final String s; public abc(int x, String s) { this.x = x; this.s = s; }
JsonObject
public static class abc implements JsonObject {
public final int x;
public final String s;
public abc(int x, String s) {
this.x = x;
this.s = s;
}
public void serialize(JsonWriter writer, boolean minimal) {
//parse the instance of object (abc) to json-string
}
public static final JsonReader.ReadJsonObject<abc> JSON_READER =
new JsonReader.ReadJsonObject<abc>() {
public abc deserialize(JsonReader reader) throws IOException {
// Use jsonreader and common json converter (numberconverter,
// stringconverter) to parse json-string to an
// instance of object (abc)
}
};
}
库存储库中的示例很少,例如: 有些事情可以尝试:
- 重用dslJson实例-在测试过程中多次重新创建它的成本很高
- 避免使用字符串-byte[]或Streams是更为GC友好的数据类型
如果DslJson不是最快的,很可能是您的设置有问题:)(这意味着您应该显示更多的代码-您测试/测试库的准确程度如何)“DslJson是最好的解析库”,谁说?(也许除了作者之外)你是如何衡量它太慢的?看看这个:和/或Google的“fast json parser”,这是Java json库序列化和反序列化的性能测试()。在我的项目中,我使用了大约30000条记录来检查性能。我建议自己尝试一些LIB,而不是选择别人说最快的。他们可能犯了错误,您可能做了一些错误,这些错误在使用另一个库时也会出现。您可能测量的解析错误,其他人无法判断。我仍然希望有人能在这方面帮助我。至少我会有关于dsl json的新经验:)。但是谢谢你的想法:)@BartKiers好吧,就连杰克逊的作者都这么说:是的。我知道这个例子,但它看起来不够,所以我不能在本地运行。我将在另一个线程上分享完整的示例。
ObjectMapper mapper = new ObjectMapper();
String jsonInString = "{\"age\":33,\"messages\":[\"msg 1\",\"msg 2\"],
\"name\":\"mkyong\"}";
User user1 = mapper.readValue(jsonInString, User.class);