gpt4 book ai didi

java - MonitorEnter操作是否耗时?

转载 作者:行者123 更新时间:2023-12-01 15:15:13 25 4
gpt4 key购买 nike

我不是在谈论进入同步块(synchronized block)所需的时间。我说的是执行 MonitorEnter 和 MonitorExit 语句所需的时间。并且,如何测量在 C(JNI) 中执行语句所需的时间?我正在使用 Eclipse 和 OSX 开发 Android 应用程序。

最佳答案

在处理无竞争的锁时,当前版本的 Dalvik 使用快速路径来避免重量级线程同步操作。就速度而言,它可能与调用用 Java 编程语言编写的简短的 CPU 绑定(bind)方法大致相同。

如果锁存在争议(也就是说,两个或多个线程正在与其交互),那么这最终会成为一个更重的操作,随着对底层操作系统线程库的调用而使虚拟机触底。也就是说,通常期望执行重量级线程操作所花费的时间主要由被锁定的实际 Activity 主导(因为如果该 Activity 运行时间不是相对较长,那么您就不太可能在其中出现有争议的锁定)第一名)。

与往常一样,分析可以帮助您解决所有问题。

如果您想深入了解,可以在 Android 源代码的 platform/dalvik/vm/Sync.cpp> 中找到重要代码。寻找dvmLockObject,尽管您必须深入了解 JIT 编译器代码才能获得更完整的故事。

关于java - MonitorEnter操作是否耗时?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11715022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com