|
|
1
7
我认为 thread details 最新Java6JDK附带的visualVM工具视图将能够为您的理论提供坚实的证据(或反对)。它为每个线程显示一个饼图,显示它在运行、睡眠、等待和在监视器中花费的时间。最后一个(以红色显示)是您感兴趣的内容:
|
|
|
2
3
如果您有一个您认为更快的修改版本,请使用一些负载测试仪(例如。 JMeter )测试两个版本。如果有显著差异,你会有结果来证明。 |
|
|
3
1
将打印一个进程id为PID的JVM状态列表,以及有关线程状态的信息。 样本输出(摘录):
我还将尝试隔离争用下的资源。e、 g.如果旧库正在锁定以同步对数据库的写入,则可能需要最小化写入。 |
|
|
4
1
他们是一群 open source java profilers 在您的支配下,以及其他可能需要花钱的,如 YourKit . 您应该使用现有代码和增强代码运行测试。使用TraceLoad的工作一般应该减少争用,但是在开始优化之前,最好还是做基准测试。 另一个非常简单的测试可以在不设置任何分析器的情况下完成,即在应用程序运行缓慢时执行一些线程转储(ctrl-break或kill-QUIT)。在短时间内发现几个线程在类似或相同的监视器上等待,可能会非常清楚地指出慢点。你可以用 tools like TDA ,一个Java线程转储分析器,帮助您梳理线程转储。 同样,在开始优化之前做这项工作是一个好主意。这是因为,虽然可能有一些明显的地方,优化可以产生差异,但实际用户行为可能触发开发人员不考虑的路径,而这些路径可能是真正的问题区域。 |
|
5
0
你的分析听起来很合理。您是否可以将visualvm(在JDK中)等附加到流程,以便查看时间花在哪里? |
|
|
6
0
我可以像这样在我们的同步呼叫中添加日志记录
|
|
|
vitaminC · 执行程序时无法理解tryLock方法 2 年前 |
|
|
Ronald · 用Java同步此vs字段 2 年前 |
|
|
Uuuuuumm · 当一个方法被并发方法调用时,我如何同步运行它 3 年前 |
|
|
wpunkts · 如何使用外部信号控制视频播放的速度和方向 3 年前 |