- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,JIT编译的机器代码存储在nmethod中。当osr发生时,整个方法也会被编译,而不仅仅是循环部分。因此,同一个方法可能有多个nmethod(osr或方法编译)。下次执行该方法时,按照什么选择nmethod?
我运行一个 tomcat 应用程序并打开 JVM 标志 -XX:+PrintTieredEvents。发现方法“org.apache.coyote.AbstractProcessor.parseHost”始终被编译,并且其运行级别为0(解释器执行),就好像没有使用nmethod一样。
399.895003: [loop level=0 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=0.946396 k=1.00,1.00 total=1684,79876 mdo=1538(0),77824(0) max levels=4,4 compilable=c1,c1-osr,c2,c2-osr status=idle]
399.895053: [compile level=4 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=0.946396 k=1.00,1.00]
401.924422: [loop level=0 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=1.021956 k=1.00,1.00 total=1684,81924 mdo=1538(0),79872(0) max levels=4,4 compilable=c1,c1-osr,c2,c2-osr status=idle]
401.924488: [compile level=4 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=1.021956 k=1.00,1.00]
402.915345: [loop level=0 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=0.996109 k=1.00,1.00 total=1684,82948 mdo=1538(0),80896(0) max levels=4,4 compilable=c1,c1-osr,c2,c2-osr status=idle]
402.915398: [compile level=4 [org.apache.coyote.AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V] @190 queues=0,0 rate=0.996109 k=1.00,1.00]
我转储方法的 nmethods
address:0x00007f43cb17ce50 || size:2400 || methodName:NMethod for org/apache/coyote/AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V || isOSR:true || lockedByVm:false || _entry_bci:190|| _state:0|| _exception_offset:1680|| _deoptimize_offset:1685|| _deoptimize_mh_offset:-1|| _orig_pc_offset:64|| _stub_offset:1680|| _consts_offset:368|| _oops_offset:1704|| _metadata_offset:1712|| _scopes_data_offset:1760|| _scopes_pcs_offset:2152|| _dependencies_offset:2344|| _handler_table_offset:2352|| _nul_chk_table_offset:2352|| _nmethod_end_offset:2400|| _stack_traversal_mark:0|| _compile_id:19658|| _comp_level:4|| _marked_for_deoptimization:0|| _entry_point:0x00007f43cb17cfc0|| _verified_entry_point:0x00007f43cb17cfc0|| _osr_entry_point:0x00007f43cb17cfd0
address:0x00007f43cb1813d0 || size:10152 || methodName:NMethod for org/apache/coyote/AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V || isOSR:false || lockedByVm:false || _entry_bci:-1|| _state:0|| _exception_offset:6235|| _deoptimize_offset:6240|| _deoptimize_mh_offset:-1|| _orig_pc_offset:64|| _stub_offset:6160|| _consts_offset:592|| _oops_offset:6256|| _metadata_offset:6296|| _scopes_data_offset:6520|| _scopes_pcs_offset:9040|| _dependencies_offset:9808|| _handler_table_offset:9848|| _nul_chk_table_offset:10040|| _nmethod_end_offset:10152|| _stack_traversal_mark:0|| _compile_id:25500|| _comp_level:4|| _marked_for_deoptimization:0|| _entry_point:0x00007f43cb181620|| _verified_entry_point:0x00007f43cb181640||_osr_entry_point:0x00007f43cb181620
address:0x00007f43cd81fc50 || size:20000 || methodName:NMethod for org/apache/coyote/AbstractProcessor.parseHost(Lorg/apache/tomcat/util/buf/MessageBytes;)V || isOSR:true || lockedByVm:false || _entry_bci:105|| _state:0|| _exception_offset:13508|| _deoptimize_offset:13632|| _deoptimize_mh_offset:-1|| _orig_pc_offset:328|| _stub_offset:13168|| _consts_offset:1104|| _oops_offset:13656|| _metadata_offset:13704|| _scopes_data_offset:13888|| _scopes_pcs_offset:17584|| _dependencies_offset:19168|| _handler_table_offset:19192|| _nul_chk_table_offset:19720|| _nmethod_end_offset:20000|| _stack_traversal_mark:0|| _compile_id:25194|| _comp_level:3|| _marked_for_deoptimization:0|| _entry_point:0x00007f43cd8200a0|| _verified_entry_point:0x00007f43cd8200c0|| _osr_entry_point:0x00007f43cd82287b
最佳答案
每个nmethod都有_entry_bci
- 该nmethod可以开始执行的字节码索引。非 OSR 编译具有 _entry_bci == InitationEntryBci (-1)
。
为栈上替换 (OSR) 编译的方法永远不会重用于常规方法条目。
事实上,一个 Java 方法最多可能有一个实际的 compiled entry point (不包括 OSR 和 AOT 条目)。如果在更高层重新编译某个方法,则该条目将被替换为指向新代码,并且以前的 nmethods 会被标记为 not_entrant
,尽管当前 Activity 的框架可能会继续运行旧版本。
关于java - 对于同一个方法,JVM如何决定使用哪个nmethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57652814/
这是一道函数依赖题。 我知道当 x->yz 然后 x->y 和 x->z 时。但是上面的依赖关系可能吗? 最佳答案 If xy determines z can x determine z and y
我有一个奇怪的问题。 Line 61: $this->_currentRoute = Default_Model_Routes::getInstance()->getCurrentRoute(); .
我正在开发一种工具来比较两个波形文件的波形相似性。例如,我有一个持续时间为 1 分钟的波形文件,我使用第一个波形文件制作了另一个波形文件,但每 5 秒生成一次数据,间隔为 5 秒至 0。 现在我的软件
我遇到了一个奇怪的问题,尽管我打赌有一个巧妙的方法可以解决它。 情况是我有一个具有三列排序状态的表:完全未排序,在这种情况下我不希望出现任何图标,按升序排序,在这种情况下我想要一个向上箭头,以及按降序
Java 语言规范提供了criteria用于确定(格式良好的)执行是否满足“Java 内存模型的因果关系要求”。让我们假设执行是有限的。我试图了解是否存在多项式时间算法来证明或反驳这种情况。 真的,我
Java 语言规范提供了criteria用于确定(格式良好的)执行是否满足“Java 内存模型的因果关系要求”。让我们假设执行是有限的。我试图了解是否存在多项式时间算法来证明或反驳这种情况。 真的,我
我正在编写一个简单的Bank类,其中包含Account。我希望人员能够开设一个新的受密码保护的银行帐户,并从其帐户中提取和存入资金。账户设在银行内。银行和帐户类应提供哪些服务? 假设 p 已在银行 b
我的标题概括了这一点。我有一个将要开发的简单业务线应用程序,并且很好奇如何确定我应该针对哪个 .NET 版本。支持 Win XP SP3 会很好,但不是必需的。它将用于索引多页 tiff,因此导入一批
已锁定。这个问题及其答案是locked因为这个问题是题外话,但却具有历史意义。目前不接受新的答案或互动。 你是否真的“尝试过”(意味着在其中编程,而不仅仅是阅读有关它的文章)Erlang并决定在项目中
我正在尝试使用 ExceptionFilterAttribute 为 Web Api 实现异常处理。我已经继承了ExceptionFilterAttribute 类并覆盖了onException 方法
前一段时间在一次编程比赛中我遇到了一个令人费解的问题,此后一直困扰着我。虽然我没有逐字记住,但我会尽力重现: Jack starts at 0 on the number line and jumps
我有什么: 我有一个主要内容区域,后面跟着两个旁白: #primary,#secondary,#tertiary{float:left; width:33%;} Primary
我无法正确操作键盘。 整个 View 充满了文本字段。 当我使用通知将 View 向上移动时,上方的文本框不再可见: override func viewDidLoad() { super.v
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我在尝试获取父对象来过滤子事件时遇到问题。 在下面的示例中,我在旋转框上设置了一个事件过滤器。事件过滤器检测旋转框上的鼠标按下事件。然后,我希望父对象根据某些标准接受或忽略该事件。 问题是它似乎接受了
我使用从 std::system_error 继承的类进行错误处理,我想控制调用 what() 时返回的内容。原因:标准(C++11 和 C++1y CD 草案 - N3690,下面的 § 引用是后者
我正在用 Swift 构建一个 iOS 应用程序,它的起始页有 6 个按钮。这些按钮中的每一个都将连接到一个 TableView Controller ,其数据由 NSFetchedResultsCo
我想构建这样的东西 数据存储| mycode.py | RESTful API | mywebapp.py(Django 或 Tornado) 我检查了 Django 的 Piston,但似乎这样我就
究竟如何更改 RichTextBox 中的字体? 环顾四周给了我似乎不再有效的旧答案。我认为这就像执行 richtextbox1.Font = Font.Bold; 或类似操作一样简单。原来不是,所以
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 7 年前。 Improve this qu
我是一名优秀的程序员,十分优秀!