English 中文(简体)
Java锁效应
原标题:locking effects in Java

does anybody know the effects of locking in Java specifically on the speed of execution of the program? if any, how do we overcome this effect? concrete references are appreciated..

最佳回答

如果你的申请主要是单面的,那么你可能会在太长时间的锁定时看到绩效的恶化。

一般来说,在使用ava时,可以非常快和高效地抓住一个锁。 并行的图书馆或建构的同步关键词。 他们使用诸如洛克比、适应性锁定和锁定 co等技术(见Mustang的同步优化版),这基本上意味着编辑和(或)图书馆做一些非常聪明的事情以优化使用锁。

这种情况在确实需要锁锁的情况下尤为突出;汇编者将其优化。

然而,当一个路面需要平整24小时时,你最终注意到,对于纯计算问题,万国邮联的核心负荷永远不会达到100%。 实际上,事情不会像可能那样快,而贵的万国邮联只是坐着。

在不存在(重税)IO的情况下,这常常是过份<条码>、24条争议<>/代码”的标志,因此的确降低了整个系统的业绩。

问题回答

锁定成本因 Java的不同版本而有所不同。 对Java <而言;=1.4锁相对昂贵。 然而,在Java 5.0 建造的锁锁房得到了改善,但新的同时锁定再次加快。 在 Java6,两者的速率大致相同。

作为指南,你可以预计, Java6的锁期成本在0.5至2.0平方之间。

做锁可能非常昂贵,因为它需要向下层的特别协调员发出呼吁。 (虚拟机器价格昂贵) 避免的一个办法是使用带有记忆障碍的化学文摘社操作。

然而,降低锁定成本的最简单/最简单的办法是,在不取决于对方的情况下,安排你的方案,这样校对时间可以比较长。

你可能认为这一联系是有意义的,因为他们谈到在 Java撰写的高投射率交易系统中使用锁定。 http://www.infoq.com/presentations/Lex"rel=“nofollow” http://www.infoq.com/presentations/L。

我同意@pst,并补充说,虽然他们说同步降低了业绩,但我在测试中没有看到这种影响。 我试图衡量这一削减是如何的,并且认为几乎不存在。 也许,这种效果在早的 j日更具有相关性。

避免额外同步的尝试实例是采用单一州模式的“娱乐”方法。 最简单的办法是协调这种(可能)造成业绩恶化的方法。 下一步(不可行)是双管齐下。 最后,更好的解决办法是将案件提到内部阶层。

Locking (or more formally, serialisation of any kind) in any algorithm limits its scalability in a multi-cpu/multi-machine environment. Amdahl s Law describes it best.

在实践中(在 Java),纯粹按顺序安排的间接费用微不足道。 正如其他地方所描述的那样,只有在你有争论的情况下才会出现业绩问题。





相关问题
Spring Properties File

Hi have this j2ee web application developed using spring framework. I have a problem with rendering mnessages in nihongo characters from the properties file. I tried converting the file to ascii using ...

Logging a global ID in multiple components

I have a system which contains multiple applications connected together using JMS and Spring Integration. Messages get sent along a chain of applications. [App A] -> [App B] -> [App C] We set a ...

Java Library Size

If I m given two Java Libraries in Jar format, 1 having no bells and whistles, and the other having lots of them that will mostly go unused.... my question is: How will the larger, mostly unused ...

How to get the Array Class for a given Class in Java?

I have a Class variable that holds a certain type and I need to get a variable that holds the corresponding array class. The best I could come up with is this: Class arrayOfFooClass = java.lang....

SQLite , Derby vs file system

I m working on a Java desktop application that reads and writes from/to different files. I think a better solution would be to replace the file system by a SQLite database. How hard is it to migrate ...

热门标签