【发布时间】:2017-08-26 19:49:46
【问题描述】:
我是 java 分析新手
我有一个从文件中读取的线程在每一行上执行一些正则表达式操作。上图是我从 JVisualVM profiler 中为我的线程得到的图表。
- 绿色正在运行。
- Purple 正在睡觉。
- 橙子停了
似乎线程睡眠多于运行。我知道由于文件读取,这在某种程度上是可以接受的。但这似乎远不止于此。
您能否解释一下,它与哪个正则表达式操作有关还是我需要寻找更多优化?
【问题讨论】:
-
您的问题中缺少许多因素,因此难以回答,例如:那台机器上还有什么正在运行?你的盒子在多少个核心上运行?内存限制呢?你的箱子装了多少?
-
线程由操作系统调度程序控制,让它们有时间工作,让其他线程工作等,并考虑到前面评论中提到的所有因素。
-
硬盘比 CPU 慢得多。我真的看不出分析输出的问题。 CPU完成处理并等待硬盘读取文件(与算术逻辑操作相比,这是一个非常耗时的操作)。
-
我很惊讶这个问题还没有结束。问题没有附加源代码,只有模糊的文字描述和彩色的无刻度条。仍然作者问:“请解释......”
标签: java regex multithreading profiling