标签: profiling

了解Firebug探查器输出

我一直在尝试使用Firebug的分析器来更好地理解我们看到的一些JavaScript性能问题的来源,但我对输出有点困惑.

当我分析一些代码时,探查器报告Profile(464.323 ms,26,412个呼叫).我怀疑464.323 ms是这些26,412次调用的执行时间的总和.

但是,当我深入查看详细结果时,我会看到平均执行时间大于464.323 ms的单个结果,例如,平均时间最长的结果会报告以下详细信息:

Calls: **1**
Percent: **0%**
Own Time: **0.006 ms**
Time: **783.506 ms**
Avg: **783.506 ms**
Min: **783.506 ms**
Max: **783.506 ms**
Run Code Online (Sandbox Code Playgroud)

另一个结果报告:

Calls: **4**
Percent: **0.01%**
Own Time: **0.032 ms**
Time: **785.279 ms**
Avg: **196.32 ms**
Min: **0.012 ms**
Max: **783.741 ms**
Run Code Online (Sandbox Code Playgroud)

在这两个结果之间,时间结果的总和远远大于464.323.

那么,这些不同的数字是什么意思呢?我应该相信哪些?

javascript profiler firebug profiling

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

如何在Java中记忆配置文件?

我还在学习Java的绳索,如果对此有明显的答案,那就很抱歉.我有一个占用大量内存的程序,我想找到一种方法来减少它的使用,但在阅读了很多SO问题后,我认为我需要在开始优化之前证明问题出在哪里.

所以这就是我所做的,我在程序开始时添加了一个断点并运行它,然后我启动了visualVM并让它描述了内存(我也在netbeans中做同样的事情只是为了比较结果而且它们是相同的).我的问题是我不知道如何阅读它们,我得到的最高区域只是说char[],我看不到任何代码或任何东西(这是有道理的,因为visualvm连接到jvm并且看不到我的来源,但是netbeans也没有向我显示源代码,因为它在执行cpu profiling时也是如此.

基本上我想知道的是哪个变量(希望更多的细节,比如在哪种方法中)所有的内存都在使用,所以我可以专注于在那里工作.有一个简单的方法来做到这一点?我现在正在使用eclipse和java进行开发(并且专门为分析安装了visualVM和netbeans,但是我愿意安装其他任何你认为完成这项工作的东西).

编辑:理想情况下,我正在寻找将我的所有对象和大小排序的东西(所以我可以看到哪一个占用内存).目前它返回诸如string []或int []之类的通用信息,但我想知道它所指的是哪个对象,所以我可以努力使其大小更加优化.

java profiling visualvm

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

.NET中的高分辨率计时器

我想对我的代码进行一些基本的分析,但发现C#中的DateTime.Now只有大约16毫秒的分辨率.必须有更好的时间保留我尚未找到的构造.

.net profiling timer

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

是否有SQL Server Express的SQL Server Profiler?

是否有SQL Server Expess的SQL Server Profiler?也许是一个开源的?或者只是一个工具,可以帮助我查看传递给数据库的查询?

sql-server profiling sql-server-express

33
推荐指数
4
解决办法
3万
查看次数

是否有适用于Python3的工作内存分析器

在Python 2中有一些工具,但一切似乎都是旧的和过时的.

我发现了PySizer和Heapy但是一切似乎都是面向Python2的,需要付出很多努力来移植.

objgraph很有趣,但仍然不是一个完全工作的分析器

使用哪种工具?

python profiling memory-profiling memory-leak-detector python-3.x

33
推荐指数
1
解决办法
9116
查看次数

我可以在xdebug profiler上手动说出在特定位置开始分析吗?

我已经在我的XAMPP安装中启用了xDebug分析,它运行正常.

现在我想询问是否有办法在我的源代码中说什么时候开始使用xDebug进行分析.

更具体地说,我想创建一个WordPress插件,我想说,从插件的起点开始分析并停止在插件的结束​​点进行分析.

那可能吗?

注意:以上只是一个例子.它可以是CakePHP插件或我可能需要分析的新PHP类

php profiling xdebug

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

如何读取nodejs内部探查器tick-processor输出

我对分析我的Node.js应用程序很感兴趣.我用--prof旗帜启动它,并获得了一个v8.log文件.我采用了windows-tick-processor并获得了一个人类可读的分析日志.在问题的底部是日志文件中的一些小摘录,我完全无法理解.

我得到了滴答统计方法.我不明白totalvs nonlib意味着什么.此外,我不明白为什么有些事情的前缀LazyCompile,Function,Stub或其他条款.

我希望得到的最佳答案是刻度处理器输出格式的完整文档/指南,完整地解释每个术语,结构等...

除此之外,我只是不明白lazy-compile是什么.是汇编吗?是不是每个函数都只编译一次?那么编译怎么可能是我的应用程序执行的重要部分?该应用程序运行了几个小时来生成此日志,我假设内部JavaScript编译需要几毫秒.这表明懒惰编译是每个函数不会发生一次,但在某种代码评估期间会发生?这是否意味着每当我有一个函数定义(例如嵌套函数)时,内部函数每次都会"懒惰编译"?

我在任何地方都找不到任何关于此的信息,我一直在谷歌搜索DAYS ......

我也意识到有很多探查器标志.其他参考资料也欢迎.

[JavaScript]:
   ticks  total  nonlib   name
  88414    7.9%   20.1%  LazyCompile: *getUniqueId C:\n\dev\SCNA\infra\lib\node-js\utils\general-utils.js:16
  22797    2.0%    5.2%  LazyCompile: *keys native v8natives.js:333
  14524    1.3%    3.3%  LazyCompile: Socket._flush C:\n\dev\SCNA\runtime-environment\load-generator\node_modules\zmq\lib\index.js:365
  12896    1.2%    2.9%  LazyCompile: BasicSerializeObject native json.js:244
  12346    1.1%    2.8%  LazyCompile: BasicJSONSerialize native json.js:274
   9327    0.8%    2.1%  LazyCompile: * C:\n\dev\SCNA\runtime-environment\load-generator\node_modules\zmq\lib\index.js:194
   7606    0.7%    1.7%  LazyCompile: *parse native json.js:55
   5937    0.5%    1.4%  LazyCompile: *split native string.js:554
   5138 …

profiler profiling v8 node.js

33
推荐指数
1
解决办法
5819
查看次数

如何用PHP生成火焰图?

我了解了火焰图并发现它们很吸引人 - 但是,我找不到有关如何为我的PHP脚本生成火焰图的有用参考.如何使用PHP收集数据并生成图形?

php profiling graph

33
推荐指数
1
解决办法
2456
查看次数

编译的加速代码的性能差异来自ghci和shell

问题

您好,我正在使用加速库来创建一个应用程序,允许用户以交互方式调用处理图像的函数,这就是为什么我要使用ghc api来扩展ghci.

问题是当从shell运行已编译的可执行文件时,计算在100ms(略小于80)下完成,而在ghci中运行相同的编译代码则需要超过100ms(平均大于140)才能完成.

资源

示例代码+执行日志:https: //gist.github.com/zgredzik/15a437c87d3d8d03b8fc

描述

首先:测试是在编译CUDA内核之后运行的(编译本身又增加了2秒,但事实并非如此).

从shell运行已编译的可执行文件时,计算在10ms内完成.(shell first runsecond shell run传递不同的参数以确保数据不会缓存在任何地方).

当尝试从ghci运行相同的代码并摆弄输入数据时,计算时间超过100毫秒.我理解解释的代码比编译的代码慢,但是我在ghci会话中加载相同的编译代码并调用相同的顶级绑定(packedFunction).我已明确键入它以确保它是专门的(与使用SPECIALIZED编译指示相同的结果).

但是,如果我main在ghci中运行函数(即使:set args在连续调用之间更改输入数据),计算确实需要不到10毫秒.

编译Main.hsghc -o main Main.hs -O2 -dynamic -threaded

我想知道开销来自哪里.有没有人有任何关于为什么会这样的建议?


remdezx发布的示例的简化版本:

{-# LANGUAGE OverloadedStrings #-}

module Main where

import Data.Array.Accelerate as A
import Data.Array.Accelerate.CUDA as C
import Data.Time.Clock       (diffUTCTime, getCurrentTime)

main :: IO ()
main = do
    start <- getCurrentTime
    print $ C.run $ A.maximum $ A.map (+1) …
Run Code Online (Sandbox Code Playgroud)

performance profiling haskell ghci accelerate-haskell

33
推荐指数
1
解决办法
1110
查看次数

SQL Azure性能分析

我在MS网站上读到SQL Azure不支持SQL事件探查器.人们用什么来分析在这个平台上运行的查询?

profiler profiling azure azure-sql-database

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