我一直在使用 JProfiler 分析一段通过 JNI 调用 native C 代码的 Java 代码,但我从“CPU View ”窗口中得到了奇怪的结果。特别是,“Call Tree”选项卡上的信息告诉我调用 native 代码的 Java 方法消耗了最多的运行时间,但“Hot Spots”选项卡甚至根本没有列出该方法。我还注意到 org.joda.time 类的类似情况,据报道它们占用了相当大的 CPU 部分,但并未报告为热点,我想知道这是否是因为它们花费大量时间调用原生日期转换代码。
任何对此问题的见解都将不胜感激。
编辑:我刚刚发现了一篇非常令人不安的学术论文,题为“Evaluating the Accuracy of Java Profilers”(我会提供一个链接,但谷歌结果引用的科罗拉多大学服务器似乎现在非常不高兴,所以我不得不从谷歌的“快速查看”链接中下载一份副本)。我怀疑本地方法的问题在于它们被多算了,因为对它们的调用很多,它们很短并且调用很可能导致屈服点;但是,我不确定是否同样适用于时间转换例程。请注意,在对同一测试运行使用插桩分析和采样分析时,我得到了截然不同的结果,而且插桩结果更符合我的直觉。我将这篇论文推荐给任何曾经发现自己对分析运行的结果摸不着头脑的人。尽管如此,仍然希望有人能提供更多信息; “探查器错误”并不是一个令人欣慰的结果。
编辑 2:看起来 colorado.edu 已经自行解决了,这里是链接:http://www-plan.cs.colorado.edu/klipto/mytkowicz-pldi10.pdf
最佳答案
热点 View 显示了固有时间较长的方法。在调用 TreeView 中,您会在调用树的顶部看到总时间较长的方法。这些方法通常不是热点。
什么被视为“固有时间”取决于过滤器的配置方式。
请参阅this help topic以获得详尽的解释。
关于java - jprofiler "Hot Spot" View 是否正确说明了通过 JNI 调用的 native 代码消耗的 CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15259775/
我正在尝试测试是否存在表单。我是Rails新手。我的new.html.erb_spec.rb文件的内容是:require'spec_helper'describe"messages/new.html.erb"doit"shouldrendertheform"dorender'/messages/new.html.erb'reponse.shouldhave_form_putting_to(@message)with_submit_buttonendendView本身,new.html.erb,有代码:当我运行rspec时,它失败了:1)messages/new.html.erbshou
我在从html页面生成PDF时遇到问题。我正在使用PDFkit。在安装它的过程中,我注意到我需要wkhtmltopdf。所以我也安装了它。我做了PDFkit的文档所说的一切......现在我在尝试加载PDF时遇到了这个错误。这里是错误:commandfailed:"/usr/local/bin/wkhtmltopdf""--margin-right""0.75in""--page-size""Letter""--margin-top""0.75in""--margin-bottom""0.75in""--encoding""UTF-8""--margin-left""0.75in""-
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
为了将Cucumber用于命令行脚本,我按照提供的说明安装了arubagem。它在我的Gemfile中,我可以验证是否安装了正确的版本并且我已经包含了require'aruba/cucumber'在'features/env.rb'中为了确保它能正常工作,我写了以下场景:@announceScenario:Testingcucumber/arubaGivenablankslateThentheoutputfrom"ls-la"shouldcontain"drw"假设事情应该失败。它确实失败了,但失败的原因是错误的:@announceScenario:Testingcucumber/ar
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
我是一个Rails初学者,但我想从我的RailsView(html.haml文件)中查看Ruby变量的内容。我试图在ruby中打印出变量(认为它会在终端中出现),但没有得到任何结果。有什么建议吗?我知道Rails调试器,但更喜欢使用inspect来打印我的变量。 最佳答案 您可以在View中使用puts方法将信息输出到服务器控制台。您应该能够在View中的任何位置使用Haml执行以下操作:-puts@my_variable.inspect 关于ruby-on-rails-如何在我的R
我遵循MichaelHartl的“RubyonRails教程:学习Web开发”,并创建了检查用户名和电子邮件长度有效性的测试(名称最多50个字符,电子邮件最多255个字符)。test/helpers/application_helper_test.rb的内容是:require'test_helper'classApplicationHelperTest在运行bundleexecraketest时,所有测试都通过了,但我看到以下消息在最后被标记为错误:ERROR["test_full_title_helper",ApplicationHelperTest,1.820016791]test
我正在尝试从Postgresql表(table1)中获取数据,该表由另一个相关表(property)的字段(table2)过滤。在纯SQL中,我会这样编写查询:SELECT*FROMtable1JOINtable2USING(table2_id)WHEREtable2.propertyLIKE'query%'这工作正常:scope:my_scope,->(query){includes(:table2).where("table2.property":query)}但我真正需要的是使用LIKE运算符进行过滤,而不是严格相等。然而,这是行不通的:scope:my_scope,->(que
我是rails的新手,想在form字段上应用验证。myviewsnew.html.erb.....模拟.rbclassSimulation{:in=>1..25,:message=>'Therowmustbebetween1and25'}end模拟Controller.rbclassSimulationsController我想检查模型类中row字段的整数范围,如果不在范围内则返回错误信息。我可以检查上面代码的范围,但无法返回错误消息提前致谢 最佳答案 关键是您使用的是模型表单,一种显示ActiveRecord模型实例属性的表单。c