Python中文
首页
教程
问答
标签
搜索
登录
注册
读取外部进程错误流严重影响性能
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我有一个Java程序,它(包括其他东西)使用输入流从外部Python应用程序读取数据。你知道吗</p> <p>下面是我用来阅读的代码:</p> <pre><code>InputStreamReader isr = new InputStreamReader(p.getInputStream()), isrError = new InputStreamReader(p.getErrorStream()); BufferedReader br = new BufferedReader(isr), brError = new BufferedReader(isrError); new Thread() { @Override public void run() { try { while (brError.readLine() != null); } catch (Exception e) { } } }.start(); while ((line = br.readLine()) != null) { //line is a previously declared String //do whatever with line } </code></pre> <p>我创建线程来读取错误流,因为Python应用程序在出错时抛出错误(我不能编辑它,它是第三方软件),并且由于某种原因,如果我不读取错误流,InputStream最终会被阻塞。你知道吗</p> <p>有没有办法让<code>while (brError.readLine() != null);</code>对性能的影响更小?你知道吗</p> <p>现在我正在研究VisualVM的性能,虽然Java软件通常保持在0-5%的CPU使用率之间,这很不错,但是大约60-65%的CPU使用率被这个线程中的这个循环使用,它的唯一功能是防止主循环阻塞。我需要尽可能地提高性能(这将进入工业生产线,因此正确使用资源非常重要)。你知道吗</p> <p>谢谢大家。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>您将丢弃流转换为不必要的字符,这可能有点昂贵,尤其是在使用UTF-8时(无论如何,这取决于平台编码通常是错误的)。你知道吗</p> <p>删除<code>Reader</code>,使用<code>BufferedInputStream</code>作为丢弃流。你知道吗</p> <p>但是,对于外部进程,重定向肯定是优越的,因为Java中根本没有处理。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
如何添加虚拟方法
7 回答
如何添加表示整数的擦边字符串?
4 回答
如何添加要在Bokeh中使用的新font.ttf文件?
3 回答
如何添加要显示的矩阵XY轴编号和XY轴
10 回答
如何添加计数?
7 回答
如何添加计数器函数?
4 回答
如何添加计数器列来计算数据帧中另一列中的特定值?
5 回答
如何添加计数器来跟踪while循环中的月份和年份?
5 回答
如何添加计数并删除countplot的顶部和右侧脊椎?
5 回答
如何添加计时器wx.应用程序更新窗口对象的主循环?
7 回答
如何添加评论到帖子?PostDetailVew,Django 2.1.5
6 回答
如何添加评论拉梅尔亚姆
7 回答
如何添加诸如矩阵Python/Pandas之类的数据帧?
3 回答
如何添加谷歌地点自动完成到Flask?
10 回答
如何添加超时、python discord bot
7 回答
如何添加超过1dp的检查
5 回答
如何添加距离方法
7 回答
如何添加跟随游戏的敌人精灵
1 回答
如何添加路径以便python可以找到程序?
8 回答
如何添加身份验证/安全性以使用happybase访问HBase?
4 回答