简体   繁体   English

Java解析器时间问题

[英]Java parser time issue

I am writing a Java parser that get ASANA APP data from ASANA server and parse it and then save it to local DB for customized reports.我正在编写一个 Java 解析器,它从 ASANA 服务器获取 ASANA APP 数据并解析它,然后将其保存到本地数据库以获取自定义报告。 I have issue with the time needed to execute this Java utility.我对执行此 Java 实用程序所需的时间有疑问。

I have this sub part of the Java parser.我有 Java 解析器的这个子部分。 When I run this, it takes approximately 10 seconds to execute.当我运行它时,执行大约需要 10 秒。 If this code executes in 10 sec than one line this is given below:如果此代码在 10 秒内执行而不是一行,则如下所示:

JSONObject Project_jsonObject = (JSONObject) Project_jsonParser.parse(Project_br);

This line execute in 9 seconds out of total 10 seconds.该行在总共 10 秒中的 9 秒内执行。 How I can reduce this time.我怎样才能减少这个时间。 Any technique or tip or alternate to reduce time.Please help me I am waiting任何减少时间的技巧或技巧或替代方法。请帮助我,我正在等待

        static File workDir = new File("C:/cygwin64/bin");
        static Runtime systemShell = Runtime.getRuntime();

        String project_request="curl -u 4cKDgv4O.L8Th7N8l7jADg3HRU44abmT: https://app.asana.com/api/1.0/projects/"+id_Project+"?opt_pretty";
        String project_cmd = project_request;
        project_cmd += " | grep 'OBJECT'"; 
        Process ProjectshellOutput = systemShell.exec(workDir+"/"+project_cmd, null,workDir);
        InputStreamReader Project_isr = new InputStreamReader(ProjectshellOutput.getInputStream()); 
        BufferedReader Project_br = new BufferedReader (Project_isr);

        JSONParser Project_jsonParser = new JSONParser();
        JSONObject Project_jsonObject = (JSONObject) Project_jsonParser.parse(Project_br);

        JSONObject projectdataObject= (JSONObject)Project_jsonObject.get("data");

        Long project_id =  (Long) projectdataObject.get("id");
        System.out.println("project id is: " + project_id);


        String project_created_at_dt = (String) projectdataObject.get("created_at");
        System.out.println("The project created at is: " + project_created_at_dt);

        String project_modified_at_dt = (String) projectdataObject.get("modified_at");
        System.out.println("The project modified at is: " + project_modified_at_dt);

        boolean project_public_status = (boolean) projectdataObject.get("public");
        System.out.println("project public status: " + project_public_status);

        String project_name = (String) projectdataObject.get("name");
        System.out.println("project name is: " + project_name);

        String project_notes = (String) projectdataObject.get("notes");
        System.out.println("project Notes are: " + project_notes);

        boolean project_archived_status = (boolean) projectdataObject.get("archived");
        System.out.println("project archived status: " + project_archived_status);

        JSONObject workspaceObj = (JSONObject) projectdataObject.get("workspace");
        Long workspace_id = (Long) workspaceObj.get("id");
        String workspace_name = (String) workspaceObj.get("name");
        System.out.println("Workspace id " + workspace_id + " with workspace  name " + workspace_name);


        String color = (String) projectdataObject.get("color");
        System.out.println("color : " + color);

        JSONObject teamObj = (JSONObject) projectdataObject.get("team");
        Long team_id = (Long) teamObj.get("id");
        String team_name = (String) teamObj.get("name");
        System.out.println("team id " + team_id + " with team name " + team_name);

It looks like you're using the JSON.simple library.看起来您正在使用 JSON.simple 库。 According to this test , JSON.simple parsed a 190 MB file in about 140 seconds.根据这个测试,JSON.simple 在大约 140 秒内解析了一个 190 MB 的文件。 That's in line with taking 9 seconds to parse a 15 MB file.这与解析 15 MB 文件需要 9 秒的时间一致。 Jackson is faster, but only just barely.杰克逊更快,但只是勉强。 So I doubt there's anything you can do to significantly improve performance.因此,我怀疑您是否可以采取任何措施来显着提高性能。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM