天道酬勤,学无止境

profiling

Haskell 快速并发队列(Haskell fast concurrent queue)

问题 问题 你好! 我正在编写一个日志库,我很想创建一个记录器,它会在单独的线程中运行,而所有应用程序线程只会向它发送消息。 我想为这个问题找到最高效的解决方案。 我在这里需要简单的未绑定队列。 方法 我已经创建了一些测试来查看可用解决方案的执行情况,我在这里得到了非常奇怪的结果。 我基于以下内容测试了 4 个实现(源代码如下): 管道并发控制.并发.Chan 控制.并发.Chan.Unagi 基于 MVar,如“Haskell 中的并行和并发编程”一书中所述 请注意,此技术为我们提供了容量为 1 的有界队列 - 它仅用于测试 测试 这是用于测试的源代码: {-# LANGUAGE NoMonomorphismRestriction #-} import Control.Concurrent (threadDelay) import Control.Monad (forever) import Pipes import qualified Pipes.Concurrent as Pipes import Control.Applicative import Control.Monad (replicateM_) import System.Environment (getArgs) import Control.Concurrent.Chan import Control

2021-06-21 11:16:51    分类:技术分享    haskell   concurrency   profiling   stm   haskell-pipes

VS2010 分析器:是否可以分析一种特定方法?(VS2010 profiler : is it possible to profile one specific method?)

问题 可能有一些方法可以从代码中打开和关闭分析? 或者你可以选择一个特定的功能来分析? 回答1 您还可以使用探查器的数据收集 API 来启动和停止围绕您感兴趣的方法进行探查。有关演练,请参阅此 MSDN 文章。 在这种情况下使用 API 的最佳方法是在方法执行之前调用StartProfile ,然后在执行之后调用StopProfile 。 您应该通过“Start With Profiling Paused”选项开始分析,这样您就不会在第一次调用StartProfile之前开始分析。 使用数据收集 API 将适用于采样或检测。 回答2 是的,稍加努力,如果您进行仪器分析(不是采样),您就可以做到这一点: 在性能资源管理器中将您的二进制文件/项目添加为目标右键单击目标,单击属性转到 Instrumentation 部分,取消选中“Exclude small functions...” 转到高级部分,在“其他检测选项”下,指定您特别想要分析的方法(例如/include:ConsoleApp.Program::Main,MyNamespace.MyClass::MyFunc ) /include语法vsinstr.exe /dumpfuncs foo.exe ,但是如果您启动 VS 命令提示符并转到二进制文件的目录,则可以运行vsinstr.exe /dumpfuncs foo

2021-06-21 09:35:15    分类:技术分享    visual-studio-2010   visual-studio   profiling   profiler

从 ghci 和 shell 运行的已编译加速代码的性能差异(Difference in performance of compiled accelerate code ran from ghci and shell)

问题 问题 您好,我正在使用加速库来创建一个应用程序,允许用户以交互方式调用处理图像的函数,这就是我使用 ghc api 基于和扩展 ghci 的原因。 问题是,当从 shell 运行编译后的可执行文件时,计算在 100 毫秒内完成(略小于 80),而在 ghci 中运行相同的编译代码需要超过 100 毫秒(平均多于 140 毫秒)才能完成。 资源 示例代码 + 执行日志:https://gist.github.com/zgredzik/15a437c87d3d8d03b8fc 描述 首先:测试是在编译 CUDA 内核之后运行的(编译本身增加了 2 秒,但事实并非如此)。 从 shell 运行编译后的可执行文件时,计算在 10 毫秒内完成。 ( shell first run和second shell run传递了不同的参数以确保数据没有缓存在任何地方)。 当尝试从 ghci 运行相同的代码并摆弄输入数据时,计算需要超过 100 毫秒。 我知道解释的代码比编译的代码慢,但我在 ghci 会话中加载相同的编译代码并调用相同的顶级绑定( packedFunction )。 我已经明确地输入它以确保它是专门的(与使用 SPECIALIZED pragma 的结果相同)。 但是,如果我在 ghci 中运行main函数,计算确实需要不到 10 毫秒(即使在连续调用之间使用:set

2021-06-21 09:19:45    分类:技术分享    performance   haskell   profiling   ghci   accelerate-haskell

尝试附加到实时进程时,为什么 dotmemory 无法收集内存流量和堆栈跟踪信息(Why dotmemory can't collect memory traffic and stack trace info when try to attached to a live process)

问题 我有一个asp.net应用程序,在该应用程序提供服务之前,它需要构建一个非常大的本地缓存。 我想分析代码的特定部分。 我的应用程序非常庞大,我不想完全对其进行分析。 我只想分析为请求提供服务的代码路径。 我开始使用dotMemory来跟踪我的应用程序内存使用情况。 当我尝试附加到一个进程时, 对话框中两个复选框的分析器选项:1) 收集每个第 N 个对象 2) 无法检查收集内存流量。 尝试附加到实时进程时,为什么dotMemory无法收集内存流量和堆栈跟踪信息? 我也尝试使用探查器 API。 private void SomeMethod() { // Here goes your code // ... // Get a snapshot if (MemoryProfiler.IsActive) MemoryProfiler.Dump(); } 我可以获得快照,但应用程序首先运行,然后附加分析器。 我也无法获得内存流量。 回答1 这是微软分析 api 的限制。 标志 COR_PRF_ENABLE_OBJECT_ALLOCATED 应该在分析进程开始之前设置。 如果您无法在 dotMemory 下启动应用程序,我建议您在“时间线”模式下尝试 JetBrains dotTrace。 它使用 ETW 提供程序来收集内存流量统计信息,并且可以帮助您解决问题。 ps 当您使用分析

2021-06-21 09:05:26    分类:技术分享    memory   profiling

Profiling for java in eclipse juno

I have to optimize performance of a team project (in eclipse Juno). To identify the bottle neck (timing) i'm searching for a tool or plugin. There seems to be a good platform TPTP, but this is not supported anymore in Eclipse Juno. JVM is a good start but seems not sufficient for a deeper analysis. Did you have some good pratices for an integrated Plugin in Eclipse Juno? If not maybe some standalone tool is succiecent as well.

2021-06-15 15:18:33    分类:问答    java   eclipse   profiling   eclipse-juno   eclipse-tptp

NDK profiling showing “.so has no symbols”

I am doing NDK profiling for my project using android-ndk-profiler-3.1. I have made changes in Android.mk as follows... LOCAL_PATH := $(call my-dir) -include android-ndk-profiler.mk include $(CLEAR_VARS) # Module name ------------------------------------------------------- LOCAL_CFLAGS += -O3 TARGET_ARCH_ABI :=armeabi LOCAL_CFLAGS := -pg LOCAL_STATIC_LIBRARIES := andprof LOCAL_LDLIBS += -llog LOCAL_MODULE := libitv include $(BUILD_SHARED_LIBRARY) Application.mk is as follows... APP_ABI := armeabi APP_PLATFORM := android-10 I have called monstartup("itv.so"); function in the beginning of the

2021-06-15 06:49:33    分类:问答    android-ndk   profiling

Dealing with heavy profiling of execution times in C++

I'm currently working on a scientific computing project involving huge data and complex algorithms, so I need to do a lot of code profiling. I'm currently relying on <ctime> and clock_t to time the execution of my code. I'm perfectly happy with this solution... except that I'm basically timing everything and thus for every line of real code I have to call start_time_function123 = clock(), end_time_function123 = clock() and cout << "function123 execution time: " << (end_time_function123-start_time_function123) / CLOCKS_PER_SEC << endl. This leads to heavy code bloating and quickly makes my code

2021-06-15 06:31:11    分类:问答    c++   performance   time   profiling

My (huge) application throws an OutOfMemoryException, now what?

This is by far the most complex software I've built and now it seems to be running out of memory at some point. I haven't done extensive testing yet, because I'm a bit lost how I should approach the problem at hand. HandleCount: 277 NonpagedSystemMemorySize: 48136 PagedMemorySize: 1898590208 PagedSystemMemorySize: 189036 PeakPagedMemorySize: 1938321408 VirtualMemorySize: 2016473088 PeakVirtualMemory: 2053062656 WorkingSet: 177774592 PeakWorkingSet: 883834880 PrivateMemorySize: 1898590208 PriviligedProcessorTime: 00:00:15.8593750 UserProcessorTime: 00:00:01.6562500 TotalProcessorTime: 00:00:17

2021-06-15 03:01:48    分类:问答    c#   .net   memory   profiling

java memory leak, visualvm showing wrong data

I've a java application running, after few hours it fulfills memory. I've tried to detect memory leak with visualvm but it shows wrong data (have no idea how that can happen). In the screenshot you can see task manager showing memory usage of 700Mb and visualvm showing 225... Does anyone know whats going on here? Regards

2021-06-15 02:16:16    分类:问答    java   memory-leaks   profiling   VisualVM

nodejs profiling; what can 'Unknown' be

While profiling a nodejs program, I see that 61% of the ticks are caused by 'Unknown' (see below). What can this be? What should I look for? gr, Coen Statistical profiling result from node, (14907 ticks, 9132 unaccounted, 0 excluded). [Unknown]: ticks total nonlib name 9132 61.3% [Shared libraries]: ticks total nonlib name 1067 7.2% 0.0% C:\Windows\SYSTEM32\ntdll.dll 55 0.4% 0.0% C:\Windows\system32\kernel32.dll [JavaScript]: ticks total nonlib name 1381 9.3% 10.0% LazyCompile: *RowDataPacket.parse D:\MI\packet.js:9 ......

2021-06-14 23:24:37    分类:问答    node.js   profiling   v8