Tag: 剖析

用于生产的最佳和最安全的Java Profiler?

我正在寻找一个Java Profiler,用于需求非常高的生产环境,无论是商业还是免费的,都满足以下所有要求: 与代码的轻量级集成(不需要用特殊选项重新编译,不需要代码钩子等等)。 在应用程序代码旁边放置一些Profiler特定的.jar是可以的。 应该能够连接/断开连接到JVM而无需重新启动应用程序。 分析不活跃时,对性能没有影响 分析活动时,对性能的影响可以忽略不计。 很轻微的降解是可以接受的 必须完成分析器所需的所有“预期”工作 – 在每种方法中花费的时间来查找热点,对象分配/内存分析等。 从本质上讲,我需要一些能够在生产过程中处于hibernate状态的东西,而不需要任何人知道或关心它是否存在,但是却可以自由地连接到麻烦(和性能下降),以确定难以发现的问题,如热点和同步的问题。

好奇心:为什么expression式编译时运行速度比最小的DynamicMethod快?

我目前正在做一些最后的措施优化,主要是为了好玩和学习,并发现了一些让我留下几个问题的东西。 一,问题: 当我通过使用DynamicMethod在内存中构造一个方法,并使用debugging器时,在反汇编视图中查看代码时,有什么办法让我进入生成的汇编代码? debugging器似乎只是对我整个方法 或者,如果这是不可能的,是否有可能以某种方式将生成的IL代码作为程序集保存到磁盘,以便我可以使用Reflector对其进行检查? 为什么我的简单添加方法(Int32 + Int32 => Int32)的Expression<…>版本比最小的DynamicMethod版本运行得更快? 这是一个简短而完整的程序,演示。 在我的系统上,输出是: DynamicMethod: 887 ms Lambda: 1878 ms Method: 1969 ms Expression: 681 ms 我期望lambda和方法调用具有更高的值,但DynamicMethod版本的速度始终低于30-50%(可能由于Windows和其他程序而异)。 任何人都知道原因? 这是该计划: using System; using System.Linq.Expressions; using System.Reflection.Emit; using System.Diagnostics; namespace Sandbox { public class Program { public static void Main(String[] args) { DynamicMethod method = new DynamicMethod("TestMethod", typeof(Int32), new […]

是否有Python的可视化分析器?

我现在使用cProfile,但是我发现编写pstats代码来查询统计数据是很繁琐的。 我正在寻找一个可视化工具,向我展示了我的Python代码在CPU时间和内存分配方面所做的工作。 来自Java世界的一些例子是visualvm和JProfiler 。 有这样的事情吗? 有没有这样做的IDE? dtrace会有帮助吗? 我知道Linux的KCachegrind ,但我更喜欢一些可以在Windows / Mac上运行而不安装KDE的东西。

如何在Scala中剖析方法?

什么是分析Scala方法调用的标准方法? 我需要的是一个方法钩,我可以用它来启动和停止计时器。 在Java中,我使用方面编程aspectJ来定义要分析的方法,并注入字节码以实现相同。 在Scala中有没有更自然的方法,我可以在函数前后定义一堆函数,而不会在程序中丢失任何静态types?

在jQuery中select后代元素的最快方法是什么?

据我所知,在jQuery中有很多select子元素的方法。 //Store parent in a variable var $parent = $("#parent"); 方法1 (通过使用范围) $(".child", $parent).show(); 方法2 (find()方法) $parent.find(".child").show(); 方法3 (仅针对直接子女) $parent.children(".child").show(); 方法4 (通过CSSselect器) – 由@spinonbuild议 $("#parent > .child").show(); 方法5 (与方法2相同) – 根据@Kai $("#parent .child").show(); 我不熟悉分析能够自己调查,所以我很想看看你有什么话要说。 PS我明白这是这个问题的可能重复,但它不包括所有的方法。

在使用Instruments分析iPhone应用程序时缺less符号名称

我正在通过命令行编译IPhone应用程序(因此没有涉及到XCode选项),我无法在使用Instruments进行分析时显示符号名称。 我尝试了几个标志,如-gdawrf-2和-g没有任何成功。 我也尝试使用dsymutils生成一个.dSYM文件,但我不知道我应该如何使用它,以至于失败。 任何帮助将不胜感激!

UNIX的“时间”命令对于基准testing是否足够准确?

假设我想要testing两个程序:foo.py和bar.py. 是几千运行和相应的time python foo.py和time python bar.py足够足够的分析和比较他们的速度? 编辑:此外,如果每个程序的执行是亚秒(假设它不是上述),那么time仍然可以使用?

如何在R中有效地使用Rprof?

我想知道是否有可能以类似于matlab的Profiler的方式从R代码中获取configuration文件。 也就是说,要知道哪些行号是特别慢的行号。 我迄今为止所达到的目标不知如何是令人满意的。 我用Rprof使我成为一个configuration文件。 使用summaryRprof我得到如下内容: $by.self self.time self.pct total.time total.pct [.data.frame 0.72 10.1 1.84 25.8 inherits 0.50 7.0 1.10 15.4 data.frame 0.48 6.7 4.86 68.3 unique.default 0.44 6.2 0.48 6.7 deparse 0.36 5.1 1.18 16.6 rbind 0.30 4.2 2.22 31.2 match 0.28 3.9 1.38 19.4 [<-.factor 0.28 3.9 0.56 7.9 levels 0.26 3.7 0.34 4.8 […]