标签: profiling

在Mathematica中分析内存使用情况

除了为他们的Eclipse插件(mathematica workbench,iirc)支付$$$之外,有没有办法分析mathkernel内存使用情况(下至个别变量)?

现在我完成了一个占用多GB GB的程序的执行,但是存储的唯一东西最多应该是〜50MB的数据,但是mathkernel.exe往往保持在~1.5GB(基本上,就像Windows一样多给它).有没有更好的方法来解决这个问题,除了保存我需要的数据并每次退出内核?

编辑:我刚刚了解了ByteCount函数(它显示了基本数据类型的一些令人不安的结果,但除此之外),但即使是我所有变量的总和也远不及mathkernel所采用的数量.是什么赋予了?

profiling memory-management wolfram-mathematica

21
推荐指数
2
解决办法
3191
查看次数

Java VisualVM为CPU分析提供了奇怪的结果 - 还有其他人遇到过这种情况吗?

我编写了这个小型(并且效率低下)的类,并希望使用Java VisualVM对其进行概要分析.

public class Test {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        br.readLine();
        int n = Integer.parseInt(args[0]);
        int fib = fib(n);
        System.out.println(fib);
    }

    private static int fib(int n) {
        if (n < 2) {
            return n;
        }
        return fib(n-1)+fib(n-2);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果很奇怪.调用ConnectionHandler.run()完全控制了结果.

(98.2%)sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()
(1.7%)java.lang.Thread.join(long)
(0%)java.lang.String.equals(Object)
等. .

可能有大约一百个方法分析,其中没有一个是fib(int)!

我的程序实际上将所有时间花在这些方法上是不可思议的.他们似乎是连接到我的jvm并做其事情的探查器.

我究竟做错了什么?

为清晰起见进行了编辑:如果你传入了45个n,那么这个应用程序将运行20个简单的秒.我最初分析的程序(不是斐波纳契计算器)将我的cpu上的所有四个核心固定为100%,并且我正在进行持续长达5分钟的分析运行.这些具有相同的结果,并且我的应用程序中的方法在热点方法列表中没有出现.

它随着运行而变化,但ConnectionHandler.run()始终位于顶部,通常占配置文件时间的~99%.

第二次编辑:我尝试过使用采样器,现在我得到的结果与JProfiler正在生成的结果一致.这样做的缺点是我没有得到分析带来的堆栈跟踪信息.但对于我的迫切需求,这是非常好的.

我在玩游戏时发现的东西是VisualVM在分析它们时计算方法调用的挂钟时间.

在我的特定情况下,我的应用程序有一个主线程,它启动工作线程并立即阻止等待队列上的消息.

这意味着阻塞方法似乎几乎占据了探查器的所有时间,尽管这种方法不是占用了我的CPU.

我希望sun.rmi.transport.tcp.TCPTransport $ ConnectionHandler.run()方法能够很好地完成它的工作 - 但是当它终止时它会成为我应用程序中运行时间最长的方法之一 - 反复出现.

java profiling visualvm

21
推荐指数
1
解决办法
7109
查看次数

使用VisualVM在Eclipse Indigo中配置JUnit

我如何配置JUnit测试,优先使用Eclipse集成支持?我正在尝试使用VisualVM,但显然无法完成.

我使用的是Windows 7 x64,Eclipse Indigo,jdk 1.6,jre-j9和JUnit 3(我可以使用v.4)

java profiler junit profiling visualvm

21
推荐指数
2
解决办法
1万
查看次数

在Linux中分析Node.JS(代码)执行时间

我正在寻找一种方法来对Linux上的脚本执行时间进行精确Node.JS 分析.

有一些有趣的项目,比如NodeTime.com Performance Profiler,但是它描述了I/O httprequests的时间等,而不是代码行的执行时间.

我正在寻找一种方法来弄清楚我可以在哪里优化我的Javascript,大部分时间花在哪里,等等.


我见过的一个有趣的方法是尝试使用DTrace创建FlameGraph来分析Node.JS.

但是,它dtrace是特定于Solaris的.

  • 对于Linux(Debian/Ubuntu),dtrace可以在sytemtap-sdt-dev包中找到.但是,stap dtrace不一样,缺少所有相关的钩子/探针.
  • Paul Fox从Unix版本开始编写端口.它的功能更加完整,但钩子/探测器在某种程度上不像Solaris那样在用户空间中工作,也不能用于配置节点.
    ftp://crisp.dyndns-server.com/pub/release/website/dtrace/(这很容易构建,请参阅自述文件.)
  • 还有一个Oracle端口,但没有人会推荐它.显然,它只有大约0.1%的Paul Fox端口探测器.(这是具有讽刺意味,因为Oracle是以前Sun的原作者dtraceSolaris)

在Linux中,如何使用终端或使用Eclipse,我可以分析我的Node.JS脚本的代码吗?我正在寻找像Zend Profiler这样的特定内容,以显示PHP脚本代码中每个命令的执行时间.

javascript eclipse profiling dtrace node.js

21
推荐指数
2
解决办法
7065
查看次数

分析模板元程序编译时间

我正在开发一个具有大量编译时计算的C++项目.漫长的编译时间正在减慢我们的速度.我怎样才能找到模板元程序中最慢的部分,以便我可以优化它们?(当我们有慢运行时计算时,我有很多分析器可供选择,例如valgrind的callgrind工具.所以我尝试构建一个调试GCC并分析它编译我们的代码,但我没有从中学到太多东西.)

我使用GCC和Clang,但欢迎任何建议.

profile_templates在Boost的网站上找到了,但似乎记录很少,需要jam/bjam构建系统.如果您展示如何在非卡纸项目1上使用它,我会向您投票.https://svn.boost.org/svn/boost/sandbox/tools/profile_templates/似乎计算实例数,而计算所花费的时间将是理想的.

1 我们的项目使用CMake并且足够小,只需将模板分析用于模板分析就可以接受.

c++ profiling instantiation template-meta-programming

21
推荐指数
2
解决办法
2477
查看次数

适用于C#2010的优秀Profiler?

我喜欢Visual Studio Ultimate 2010的分析器.但是我没有8,000美元或其他任何成本来获得该功能.是否有任何好像即使不是更好的分析器?它不一定是免费的.我基本上希望看到像方法X这样的东西有这么多的包容时间,被调用的时间和世界卫生组织,独家时间等等.还有别的吗?

c# profiler profiling visual-studio

20
推荐指数
2
解决办法
2万
查看次数

是否可以直接使用C#中的Profiling API?

我只想使用.NET Profiling API(ICorProfilerCallback等),但同时又不想处理C++.我一直在寻找一段时间,并且没有在C#中找到任何示例,但是C#+ C++中最有趣的部分是使用C++编写的.

.net c# api profiling clr-profiling-api

20
推荐指数
1
解决办法
4908
查看次数

Android:有没有用于分析本机代码的工具?

我只找到了一个分析工具 - http://code.google.com/p/android-ndk-profiler/.到目前为止无法使其工作,所以我想知道是否还有其他工具可用.我需要在物理设备上进行配置,因为我的应用程序甚至无法在模拟器上运行.

profiling android-ndk

20
推荐指数
2
解决办法
1万
查看次数

cProfile for Python无法识别函数名称

我在一个名为email的应用程序中有一个功能,我想要分析.当我尝试做这样的事情时,它会爆炸

   from django.core.management import BaseCommand
   import cProfile


  class Command(BaseCommand):
       def handle(self, *args, **options):
           from email.modname import send_email
           cProfile.run('send_email(user_id=1, city_id=4)')
Run Code Online (Sandbox Code Playgroud)

当我运行此管理命令时,它会引发以下错误:

      exec cmd in globals, locals
     File "<string>", line 1, in <module>
     NameError: name 'send_email' is not defined
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么?cProfile如何评估字符串(在全局/本地名称空间中查找函数名称)?

python profiling cprofile

20
推荐指数
1
解决办法
7825
查看次数

在Kcachegrind中打开perf.data

我在某处读到可以将perf.data(从Linux perf record分析工具输出)转换为kcachegrind可以解析/绘制的格式,但是我没有找到能够执行此转换的应用程序,并且kcachegrind也没有打开perf.data.

这是可能的:使用kcachegrind查看perf输出?我可以使用哪种工具?

linux performance profiling valgrind perf

20
推荐指数
1
解决办法
3154
查看次数