微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Java中运行Web服务器时出现高延迟 bufferedReader.readLine的运行时间超过500ms

如何解决在Java中运行Web服务器时出现高延迟 bufferedReader.readLine的运行时间超过500ms

因此,最近我一直在为广播控制制作服务器,但是我在阅读线路时遇到了一些问题。当连接进入时,我正在创建一个新线程,这就是处理连接的地方。所有数据都在被调用的URL中提供。例如: $FinalData = [ 'exists' => !!fopen($CSVpath,"r") ]; 要么 /controllerupdate/?_=1597968275949。它们根据URL从混合器返回不同的内容。其他所有事物的处理工作最少(平均

不过,/api/最多需要花费700毫秒来通话,这是广播时的年龄。

这是代码块:

String line = br.readLine()

代码显示以下内容

    @Override
    public void run() {
        String path = "";
        try {
            //BufferedReader br = new BufferedReader(new InputStreamReader(this.is));
            BufferedReader in = new BufferedReader(new InputStreamReader(this.s.getInputStream()));

            long timeIn = System.currentTimeMillis();
            //String request = br.readLine(); // Now you get GET index.html HTTP/1.1
            String line;

            line = in.readLine();

            long t = (System.currentTimeMillis() - timeIn);

            String[] requestParam = line.split(" ");
            path = requestParam[1];

            if(t > 50) {
                System.out.println("T1: " + path + " :: " + t);
            }

            //Rest of the processing code is here
        } catch (Exception e) {
            e.printstacktrace();
        }
    }

执行连接的程序是C#程序:

这是执行请求及其调用方式的函数

Listening for connection on port 8080 ....
1597968951950 :: T1: /controllerupdate/?_=1597968950775 :: 187
1597968952013 :: T1: /api/ :: 766
1597968953450 :: T1: /controllerupdate/?_=1597968950778 :: 203
1597968953950 :: T1: /api/ :: 453
1597968954950 :: T1: /controllerupdate/?_=1597968950781 :: 203
1597968955950 :: T1: /api/ :: 703
1597968956450 :: T1: /controllerupdate/?_=1597968950784 :: 203
1597968956950 :: T1: /api/ :: 125
1597968957951 :: T1: /controllerupdate/?_=1597968950787 :: 204
1597968958951 :: T1: /api/ :: 345
1597968959450 :: T1: /controllerupdate/?_=1597968950790 :: 203
1597968960950 :: T1: /controllerupdate/?_=1597968950793 :: 203
1597968960950 :: T1: /api/ :: 453

致电者:

        private async Task<String[]> doGetRequestWithError(String url)
        {
            if (!url.StartsWith("http"))
            {
                url = "http://" + url;
            }

            //Console.WriteLine(url);

            try
            {
                HttpClient httpClient = new HttpClient();
                HttpResponseMessage result = await httpClient.GetAsync(url).ConfigureAwait(false);
               
                String error = result.StatusCode.ToString();

                String content = await result.Content.ReadAsstringAsync();

                return new String[] { content,error };
                
            }
            catch (Exception e)
            {
                Console.WriteLine(e.StackTrace);
                Console.WriteLine("ERROR: " + url);
            }

            return new string[] { "","" };
        }

认为该日志中运行缓慢的是来自Ajax调用

Task<String[]> tsk = this.doGetRequestWithError(this.server + "/mixer?id=" + this.id + "&function=next");

因此,我只是想知道我要去哪里错了?我以前从未遇到过这个问题!

提前谢谢!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。