小编HdM*_*HdM的帖子

在Time Profiler,Instruments,OS X中缺少JAVA过程名称

我正在使用Java编写算法实现.在OS X 10.7之前,我使用Shark Profiler来分析我的实现,它的工作非常好.但是,新仪器不再找到程序名称.我已经尝试使用鲨鱼的VM参数运行java应用程序(即-agentlib:Shark),但它们对于10.7是未知的,我找不到这样的工具的agentlib.

有关如何将过程名称附加到Insturments中的符号名称(有些十六进制数字)的任何想法?我正在使用Eclipse Indigo,如果这有任何区别的话.

谢谢!

编辑:到目前为止,OS X Mountain Lion没有任何改变.

编辑#2:来自(?)开发人员的更新通过apple的bug报告者:

dtrace过去一直支持Java堆栈,但老实说我不能说是否支持了这种支持.对于您要测量的内容而言,这可能是一种可行的解决方法 - 此时,这不是性能工具的优先级.您可能希望从/usr/bin/cpu_profiler.d中的D脚本开始并修改它以收集jstack.

编辑#3:好的,经过一些更多的讨论后发现开发人员本身并不知道该脚本的来源.显然,仪器中的时间分析器无论如何都不使用DTrace,因此唯一的选择是编写我们自己的DTrace脚本或仪器.

你是对的,我道歉.我不确定那个脚本来自哪里,当我仔细查看它时,它没有jstack动作,所以它不是你想要的.看起来我能提供的唯一java分析选项是DTrace.DTrace有一个配置文件提供程序,以及一个收集java堆栈的jstack操作.您可以使用"聚合"来确定最重的堆栈跟踪,所有这些都可以从命令行进行.DTrace的文档主要由Sun维护,我会引导您访问任何DTrace教程,因为大多数都涵盖了配置文件提供程序.

尽管人们在网上说,仪器不会将DTrace用于所有内容,特别是时间分析,因此我无法在仪器UI中为您提供快速修复.

java macos profiling dtrace instruments

9
推荐指数
1
解决办法
541
查看次数

Rails:强制用户在保存父级之前创建子对象

我是Ruby on Rails的初学者.目前,我有以下问题:我有一个类Game,其中包含一系列图片和句子交替.我希望创建新用户的用户Game需要提供一个起始图片或句子.如果他不这样做,我不想将新创建的游戏保存到数据库中.

class Game < ActiveRecord::Base
  has_many :sentences
  has_many :paintings

  validates_inclusion_of :starts_with_sentence, :in => [true, false]

  [...]
end
Run Code Online (Sandbox Code Playgroud)

我的方法是在/ games/new上,用户必须先给出一个绘画或一个句子,但我不确定如何强制执行此操作,尤其是如何在一个父对象中创建和保存子对象步.

nested-forms ruby-on-rails-3

3
推荐指数
1
解决办法
2400
查看次数