为什么这短代码这么耗时,求大神解答,怎么优化
美团员工:这代码。。。
大华股份员工:cto写的,我看github上的连es没有这么耗时,都是秒连,写代码问题出现在哪
百度员工:finally呢
马不群:跑了120秒?
刘璋:首先流的处理一次过滤,一次foreach ,可以合并,二,某些情况使用流式不一定快,三,一些map,list初始化容量要构造的时候就定下来,又是多的size时候,避免扩容带来的性能损耗。
程序猿.懒羊羊:636
没取好:确定不是server挂了再重试么。。。120秒夸张了啊
前小米通讯技术有限公司员工:辣鸡 这都有网络io的代码 跟写的长短有什么关系 能不能看是某个节点慢 还是都慢 网络情况怎么样
北京松鼠山科技有限公司员工:120秒,太夸张了,我们的特别快
风九攸:一次filter 两次foreach 改成一次foreach就可以完成
大罗:Client.addxxxx前后打日志,看每次耗时情况。
大华股份员工:一次是build,一次是socket这里,断电调试的时候发现执行有点久
斗鱼旭旭宝宝:不应该这么慢的,感觉不是代码的问题,找找别的原因
华山弟子:你把时间日志打印加到所有行之间,看看是哪一个语句慢了
殷天正:应该是有节点超时了
程序猿.龙卷风:Optional.of().get(); 这样写和没写没区别啊[尴尬]
低压锅蒂亚戈:cto的代码你也敢改[坏笑]
程序猿.嵩山弟子:如果你说的慢是120秒级别有没有涉及到非常大的文件处理,时间很有可能花在I/O上了。你里面有Internet call,单纯的stream 可能是单线程的 你可以试 parallel stream,当然任何dependency 都可能会block thread,我也不知道你的config 和 node多大,最简单是多加几个时间节点看看哪里耗时就完事。如果是一个大的项目调性能的时候直接profiler走起吧
百度员工[2]:每个语句结束打个时间看就知道了,另外这代码可读性很差,滥用lambda会给后人留下很多坑
荀攸:换成并发流
天府三街吴彦祖:不好意思 这代码,直接放弃了
程序猿.带你看日出:m
文丑:。
阿里巴巴员工:你把最后一个foreach注释掉试试,我猜是dns解析的问题
蚂蚁金服员工:[冷汗]
刘璋:首先流的处理一次过滤,一次foreach ,可以合并,二,某些情况使用流式不一定快,三,一些map,list初始化容量要构造的时候就定下来,又是多的size时候,避免扩容带来的性能损耗。