标签: profiling

支持 MingW32 的好的免费分析器好吗?

我在另一个帖子里问,如何分析我的东西,人们给了我很多很好的答复,只是当我尝试使用一些免费的分析器时,例如 AMD Codeanalyst,它们只支持 Microsoft PDB 格式,而 MingW 无法生成那些。

那么,什么分析器可以帮助我分析一个使用 Lua 脚本编写并使用 MingW 编译的多线程应用程序?

编辑:gprof 是废话,说我为什么不想要它的 awnser,就在现场......如果我得到它列出的所有功能都很麻烦,它们都与我遇到的问题无关(有某个动作会导致大幅减速,我不知道为什么,gprof 也无法理解)

c++ lua profiling mingw

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

性能分析器

大约在 8-9 年前,我看到了一个 Visual Studio 工具(我真的不记得名字了),它可以可视化函数调用及其性能。我真的很喜欢它,所以我想知道 Python 中是否有类似的东西。假设您有三个功能:

def first_func():
    ...

def second_func():
    ...
    for i in xrange(10):
        first_function()
    ...

def third_func():
    ...
    for i in xrange(5):
        second_function()
    ...
Run Code Online (Sandbox Code Playgroud)

所以,那个工具的最终报告是这样的(包括连接图):

first_func[avg 2ms] <--50 times--< second_func[avg 25ms] <--5 times--< third_func[avg 140ms]
Run Code Online (Sandbox Code Playgroud)

像这样的工具可以更容易地找到系统的瓶颈。特别是对于大型系统。

python performance profiling

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

jenkins 构建分析

我项目中的构建最近开始花费更多时间。我需要优化它们,但我不想盲目优化。我需要构建过程的各个步骤(获取、准备、构建脚本、发布等)消耗了多少时间。是否有任何启用 cuch 分析的 jenkins 插件?

continuous-integration profiling jenkins

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

有没有相当于Python的cProfile的Julia分析器?

我想看看我的Julia代码的哪些部分需要花费最多时间来执行的细分.在Python中,cProfile分解了代码调用的每个函数花费的时间; 朱莉娅有类似的东西吗?

profiler profiling julia

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

对GIL进行性能分析

有没有一种方法来分析python进程对GIL的使用?基本上,我想找出持有GIL的时间百分比。该进程是单线程的。

我的动机是我有一些用Cython编写的代码,使用nogil。理想情况下,我想在多线程进程中运行它,但是为了知道这是否可能是一个好主意,我需要知道GIL是否有大量时间空闲。


我从8年前就发现了这个相关问题。唯一的答案是“否”。希望此后一切都变了。

python multithreading profiling cython gil

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

JVisualVM -Xverify:none无法解决重定义失败,错误62

我试图在Windows 7 64位上使用jvisualvm配置一个简单的Java应用程序.我正在使用Java 8和JDK 1.8.0_131.我能够看到我的应用程序并使用VisualVM的Sample选项卡,但是当我使用Profile选项卡的CPU选项时,我得到一个"Redefinition failed with error 62".此错误在线记录,常见的解决方案是在启动应用程序时包含标志-Xverify:none.但是,使用此标志对我没有影响.我已经尝试了JVisualVM本身和我的简单程序jar都没有区别.以下是我正在使用的终端命令.

使用Xverify和简单的程序.

java -jar SimpleProfile.jar -Xverify:none
Run Code Online (Sandbox Code Playgroud)

使用Xverify和jvisualvm

./jvisualvm.exe -J-Xverify:none

两者都是从Git Bash终端运行而没有效果.我也在CMD中尝试过类似的命令.

我的PC上没有管理员权限,我注意到我无法使用Windows资源监视器.这可能与问题有关,还是我的论点有问题?

额外信息:当探查器失败时,我在终端中收到以下错误

Profiler Agent: Waiting for connection on port 5140 (Protocol
version: 15)
Profiler Agent: Established connection with the tool
Profiler Agent: Local accelerated session
Profiler Agent Error: Redefinition failed for classes:
sun.nio.fs.NativeBuffer$Deallocator
sun.rmi.transport.DGCImpl$1
sun.rmi.transport.tcp.TCPTransport$AcceptLoop
sun.rmi.transport.DGCAckHandler$1
com.profiletest.Main
sun.nio.ch.FileChannelImpl$Unmapper
java.io.DeleteOnExitHook$1
java.util.ResourceBundle$RBClassLoader
java.util.concurrent.ThreadPoolExecutor$Worker
java.util.concurrent.ScheduledThreadPoolExecutor

$ScheduledFutureTask
java.lang.ref.Reference$ReferenceHandler
java.lang.ClassLoader
java.util.logging.LogManager$Cleaner
com.sun.jmx.remote.internal.ServerCommunicatorAdmin$Timeout
java.lang.ApplicationShutdownHooks$1
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler
java.util.concurrent.FutureTask
java.lang.ref.Finalizer$FinalizerThread
java.lang.reflect.Method
Profiler Agent Error: with message: Redefinition failed with

error …
Run Code Online (Sandbox Code Playgroud)

java profiling jvm jvisualvm

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

Haskell:两个版本代码之间的速度差异

我已经开始尝试解决一些小问题而潜入Haskell.

我偶然发现了"标准的haskell友好"解决方案与我的"非常丑陋且不易受欢迎"版本之间的巨大性能差异(~100-200x).

我敢肯定,对于其他的haskellers来说,这种性能上的差异有一个很好的理由,我很遗憾,并且可以就这个话题教育我.

问题:找到数字字符串中的最大5位数字

两者在解决时都使用相同的概念:生成所有5位数字并找到最大值.

优雅而快速的代码

digit5 :: String -> Int
digit5 = maximum . map (read . take 5) . init . tails
Run Code Online (Sandbox Code Playgroud)

代码丑陋且速度很慢(一旦字符串大小很大)

digit5' :: String -> String -> String
-- xs - input string
-- maxim - current maximal value
digit5' xs maxim 
  | (length xs) < 5 = maxim
  | y > maxim = digit5' (drop 1 xs) y -- use new detected maximum value
  | otherwise …
Run Code Online (Sandbox Code Playgroud)

optimization profiling haskell

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

如何有效地找到一组点的边界框?

我有几个点存储在一个数组中.我需要找到那些点的界限,即.限定所有点的矩形.我知道如何用普通的Python解决这个问题.

我想知道有没有比天真的最大,最小的数组或内置方法更好的方法来解决问题.

points = [[1, 3], [2, 4], [4, 1], [3, 3], [1, 6]]
b = bounds(points) # the function I am looking for
# now b = [[1, 1], [4, 6]]
Run Code Online (Sandbox Code Playgroud)

python profiling bounding-box

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

如何在Goland IDE中使用分析

我按下Run按钮开始我的程序工作然后我按下按钮Start CPU Usage Profiling.最后我得到了一个像GO-version_username_time.zip.

接下来我该怎么办?我怎样才能获得最昂贵的功能列表?

profiling jetbrains-ide goland

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

所选进程无法使用Android分析,但已启用高级分析

我正在开发具有多个模块的Android应用程序。该应用程序使用ProGuard,所有模块中的compileSdkVersion都设置为27,并且当我尝试启用Advanced Profiling时,我继续收到一条消息,提示“所选过程不提供Advanced Profiling”。

我在搜索有关该主题的其他问题后尝试过的解决方案:

  1. 启用应用程序的高级性能分析(显然)以及默认的运行配置
  2. 使用minifyEnabled false在所有模块中禁用ProGuard
  3. 将Studio版本更新为3.1.3,并将Gradle更新为4.4
  4. 上述更改后重建项目

我想念什么吗?我还可以做些其他事情来启用高级分析吗?

debugging android profiling android-studio android-profiler

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