Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java项目中的DSL Json太慢_Java_Json_Jackson_Dsl - Fatal编程技术网

Java项目中的DSL Json太慢

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; }

在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;
    }

    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);