标签: profiling

了解 javascript cpu 配置文件

Google Chrome 和NodeJs 检查器允许生成具有以下 JSON 结构的 cpu 配置文件:

摘抄

{
  "nodes": [
    {
      "callFrame": {
        "functionName": "(root)",
        "scriptId": "0",
        "url": "",
        "lineNumber": -1,
        "columnNumber": -1
      },
      "children": [2, 71],
      "hitCount": 0,
      "id": 1
    }
  ],
  "startTime": 194737272346,
  "endTime": 194737292265,
  "samples": [1, 1, 1],
  "timeDeltas": [7489, 1185, 1271]
}
Run Code Online (Sandbox Code Playgroud)

来自文档:https ://chromedevtools.github.io/devtools-protocol/tot/Profiler#type-Profile

nodesarray ProfileNode - 配置文件节点的列表。第一项是根节点。
startTimenumber - 分析开始时间戳(以微秒为单位)。
endTimenumber - 分析结束时间戳(以微秒为单位)。
samplesarray [integer] - 样本顶部节点的 ID。
timeDeltasarray [integer] - 相邻样本之间的时间间隔(以微秒为单位)。第一个增量是相对于配置文件开始时间的。

有多个库,例如d3-flame-graph,允许将所有内容渲染 …

javascript cpu profiling google-chrome

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

什么是 _PyEval_EvalFrameDefault?

当我使用 perf 进行分析时,_PyEval_EvalFrameDefaultCPU 使用率位于顶部。

但我不知道那是什么。我怎样才能避免这个功能?

python profiling python-3.x python-internals perf

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

如何为使用 Clang LLVM 编译的 C++ 代码生成图形代码分析报告?

如何为使用 Clang LLVM 编译的 C++ 代码生成图形代码分析报告?

  • 我将哪些命令行选项传递给 clang++ 以指示它在执行代码时收集分析数据?

  • 收集到的分析数据存储在哪个文件中?

  • 将收集到的配置文件数据转换为图形报告的后处理步骤是什么,该报告显示每个函数被调用的频率、每个函数花费的时间百分比以及每个函数是从哪些函数调用的(类似于https:// /s3-us-west-2.amazonaws.com/brunorijsman-public/example-rift-python-code-profile.png)?

我可以完全控制 C++ 源代码和 Makefile。

它必须是 LLVM clang++ (GNU g++ 对我来说不是一个选择)。Xcode 也不适合我。

c++ profiling llvm clang

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

IntelliJ 调试器:计算调用函数的次数

我想计算一个函数在我的程序中被调用的次数。该方法在不同的对象中调用,我不想传递一个变量并让它们全部添加到其中。
IntelliJ 调试器中是否有一个功能可以计算函数总体调用的频率?

具体来说,我的程序是用于图问题的搜索树算法,我想计算生成的搜索树有多少个不同的分支。每个分支都对应于上述函数的调用。

java debugging methods profiling intellij-idea

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

Perf 显示没有内存访问的块中的 L1-dcache-load-misses

下面是一个代码块,perf record 标记为造成所有 L1-dcache 未命中的 10%,但该块完全是 zmm 寄存器之间的移动。这是 perf 命令字符串:

perf record -e L1-dcache-load-misses -c 10000 -a -- ./Program_to_Test.exe
Run Code Online (Sandbox Code Playgroud)

代码块:

Round:
vmulpd zmm1,zmm0,zmm28
VCVTTPD2QQ zmm0{k7},zmm1
VCVTUQQ2PD zmm2{k7},zmm0
vsubpd zmm3,zmm1,zmm2
vmulpd zmm4,zmm3,zmm27
VCVTTPD2QQ zmm5{k7}{z},zmm4

VPCMPGTQ k2,zmm5,zmm26
VPCMPEQQ k3 {k7},zmm5,zmm26
KADDQ k1,k2,k3

VCVTQQ2PD zmm2{k7},zmm0
VDIVPD zmm1{k7},zmm2,zmm28 ; Divide by 100
VPXORQ zmm2{k7},zmm2,zmm2
vmovupd zmm2,zmm1
VADDPD zmm2{k1},zmm1,zmm25
Run Code Online (Sandbox Code Playgroud)

对于该代码块,我使用其他 L1 度量(例如 l1d.replacement)得到了类似的结果。

我的问题是,一个仅是 zmm 寄存器移动的块如何会产生 L1 缓存未命中?我认为寄存器根本不会进入内存。事实上,最后一次内存访问是在该代码块之上的10条指令;其他9条指令都是寄存器到寄存器指令。

linux performance profiling x86-64 perf

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

获取 Wordpress 页面加载的每个函数的执行时间。(用于分析、查找性能瓶颈)

什么工具、方法最适合分别获取每个WP 函数的执行时间。理想情况下,我希望看到一个列表,如下图所示:

在此输入图像描述

这是“调试栏”插件的 UI,带有“慢动作”插件,这是一个好的开始,但现在对我来说还不够,因为它只显示钩子本身的总运行时间,而不显示各个函数(回调)一一附加到它们上。

见下图:

在此输入图像描述

因此,我也很高兴看到每个功能的单独时间。

到目前为止,这个插件让我最接近这个,它肯定是一个有价值的产品,但是有可能对其进行改进吗?--> 我们是否知道任何现成的解决方案(自定义代码或产品)?

(作为参考,这里是我在研究这个主题期间发现的一个较旧的相关问题。在这里我计划检查 Xdebug,但首先我想找到 Wordpress 特定的工具。)

感谢您的任何帮助/提示!
最好的,
维克托

php debugging wordpress profiling hook-woocommerce

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

如何分析毒性?

我通过 tox 运行一个特定的测试用例:

tox -e myenv foo.tests.test_foo.SomeTestCase
Run Code Online (Sandbox Code Playgroud)

这需要 30 秒。

测试本身非常简单且快速。但在测试开始运行之前似乎发生了很多事情。

我如何跟踪/分析测试运行之前发生的事情?

我想仅分析 tox 不会有帮助,因为 tox 没有多大作用。Tox 会产生耗时过长的子进程。

python profiling tox

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

用于在C中查找函数调用中的已用时间的计时器

我想计算在C中函数调用期间经过的时间,精度为1纳秒.

C中是否有可用的定时器功能?

如果是,请提供示例代码段.

伪代码

Timer.Start()
foo();
Timer.Stop()
Display time elapsed in execution of foo()
Run Code Online (Sandbox Code Playgroud)

环境细节: - 在RHEL机器上使用gcc 3.4编译器

c profiling timer

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

如何加快T-SQL查询速度?

我开发了几个T-SQL存储过程,它们迭代了相当多的数据.第一个需要花费几分钟来运行一年的数据,这对我的目的来说很好.第二个使用相同的结构/算法,虽然数据量更多,需要两个小时,这是无法忍受的.

我正在使用SQL-Server和Query-Analyzer.是否有任何分析工具,如果有,它们如何工作?

或者,根据下面的伪代码,有关如何提高速度的任何想法?简而言之,我使用游标迭代来自直接SELECT(来自几个连接表)的数据.然后我根据值构建一个INSERT语句,并将结果INSERT到另一个表中.一些SELECTed变量在INSERTion之前需要一些操作.包括从日期值,一些基本浮点运算和一些字符串连接中提取一些日期部分.

---粗略算法/伪代码

DECLARE <necessary variables>
DECLARE @cmd varchar(1000)
DECLARE @insert varchar(100) = 'INSERT INTO MyTable COL1, COL2, ... COLN, VALUES('

DECLARE MyCursor Cursor FOR
    SELECT <columns> FROM TABLE_1 t1
    INNER JOIN TABLE_2 t2 on t1.key = t2.foreignKey
    INNER JOIN TABLE_3 t3 on t2.key = t3.foreignKey

OPEN MyCursor
FETCH NEXT FROM MyCursor INTO @VAL1, @VAL2, ..., @VALn
WHILE @@FETCH_STATUS = 0
BEGIN
   @F = @VAL2 / 1.1  --- float op
   @S = @VAL3 + ' ' + @VAL1
   SET …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server optimization profiling

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

分析Java EE1.5或SE1.6

我是Java新手,我想问一下.

在服务器上配置应用程序是否有意义,我只有控制台?

有没有合理的控制台分析器?

或者我应该只在localhost上分析应用程序?

java profiling

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