标签: profiling

VisualVM无法取样内存

我有一个配置了JMXRemote参数的tomcat实例.本地VisualVM能够在CPU上获取采样器,但不能用于内存.内存按钮显示为灰色,显示:"内存采样:不可用.无法连接到目标应用程序.请确保应用程序在受支持的JDK 6或JDK 7上运行"

JMXRemote参数:

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9086
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Run Code Online (Sandbox Code Playgroud)

Tomcat JDK版本:

JDK1.6.0.30
Run Code Online (Sandbox Code Playgroud)

VisualVM版本:

Version: 1.6.0_30 (Build 1320-110325); platform 110131-9c8b3bfb3a1e
System: Windows Server 2008 R2 (6.1) , amd64 64bit
Java: 1.6.0_30; Java HotSpot(TM) 64-Bit Server VM (20.5-b03, mixed mode)
Vendor: Sun Microsystems Inc., http://java.sun.com/
Environment: Cp1252; en_US (visualvm)
Userdir: C:\Users\Administrator\AppData\Roaming\.visualvm\7
Clusters: C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\platform
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\visualvm
C:\Program Files\Java\jdk1.6.0_30\lib\visualvm\profiler
Run Code Online (Sandbox Code Playgroud)

Tomcat版本:

Tomcat 6.0.32
Run Code Online (Sandbox Code Playgroud)

我在win server 2008上运行VisualVM和Tomcat.我做错了什么?

java profiling visualvm

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

找到最耗时的部分代码的可靠方法是什么?

在我的源代码中,我尝试捕获并测量Python中段的时间释放.如何以方便的方式精确测量该段传递时间?

python performance profiling

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

为什么select()会在程序中消耗这么多CPU时间?

我有几个使用MINA的Java应用程序,它们都使用20个MINA线程.一个应用程序提供大约10,000个并发连接,这些连接通常是空闲的但有时会接收输 对于该应用程序来说,20可能是一个合理的线程数,虽然我没有完全描述它(这个问题正在进行中).另一个应用程序一次只能提供大约15个连接但启动IO工作,因此它们非常繁忙,无论如何都有20个MINA线程,这显然太多了.

对我来说很奇怪的是,两个应用程序总是把他们的CPU时间的30%,有时高达60%用于MINA的select()方法,在VisualVM中进行了分析.调用堆栈如下所示:

java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:228)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:81)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
- locked <40ca5d54> (a sun.nio.ch.Util$2)
- locked <24649fe8> (a java.util.Collections$UnmodifiableSet)
- locked <3fae9662> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
at org.apache.mina.transport.socket.nio.NioProcessor.select(NioProcessor.java:72)
at org.apache.mina.core.polling.AbstractPollingIoProcessor$Processor.run(AbstractPollingIoProcessor.java:1093)
at org.apache.mina.util.NamePreservingRunnable.run(NamePreservingRunnable.java:64)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

它似乎是基于一个繁忙的民意调查,这对我来说听起来真的不对.

当我看到数字那么高时,我应该担心吗?是什么导致这个?这是我需要优化的东西还是更类似于睡眠或闲置程序?如果它更像是一个睡眠例程,它会以某种方式被安排为比其他CPU工作更低的优先级?

更新: 这个线程似乎是同一个问题.我遵循了它的建议,现在正在运行Java 1.7.0_45,但我仍然看到select在具有10k连接的应用程序中占用高达90%的CPU时间.

我们正在使用MINA 2.0.4,这意味着修复了相关的错误.

java profiling selector mina

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

如何逐行分析cython功能

我经常很难找到cython代码中的瓶颈.如何cython逐行分析功能?

profiling cython

27
推荐指数
3
解决办法
7357
查看次数

chrome javascript内存分析器中的System对象是什么

我正在使用Chrome开发工具分析javascript应用程序.

我看到增长的唯一内存区域是System对象总数.

我想知道我怎么能理解导致这种行为的原因,因为工具中没有细节显示哪些系统对象泄露了.

我看了一下应用程序分配,但随着时间的推移它没有太大变化...当我使用时间轴功能堆增长超过500mb

初始快照

多小时使用后的快照

使用时间线工具后的快照

javascript memory profiling google-chrome-devtools

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

有没有办法在C++函数中获取函数名?

我想实现一个函数跟踪器,它将跟踪一个函数执行的时间.我有以下课程: -

class FuncTracer
{
    public:
        FuncTracer(LPCTSTR strFuncName_in)
        {
            m_strFuncName[0] = _T('\0');
            if( strFuncName_in ||
                _T('\0') != strFuncName_in[0])
            {   
                _tcscpy(m_strFuncName,strFuncName_in);

                TCHAR strLog[MAX_PATH];
                _stprintf(strLog,_T("Entering Func:- <%s>"),m_strFuncName);
                LOG(strLog)

                m_dwEnterTime = GetTickCount();
            }
        }

        ~FuncTracer()
        {
            TCHAR strLog[MAX_PATH];
            _stprintf(strLog,_T("Leaving Func:- <%s>, Time inside the func <%d> ms"),m_strFuncName, GetTickCount()-m_dwEnterTime);
            LOG(strLog)
        }

    private:
        TCHAR m_strFuncName[MAX_PATH];
        DWORD m_dwEnterTime;
};

void TestClass::TestFunction()
{
    // I want to avoid writing the function name maually..
    // Is there any macro (__LINE__)or some other way to 
    // get the function …
Run Code Online (Sandbox Code Playgroud)

c++ macros profiling

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

如何配置MySQL

如何配置MySQL数据库.我想看到所有SQL都是针对数据库运行的.

我知道你可以这样做:

  • set profiling=1;
  • 运行慢速查询(例如 SELECT * FROM messages WHERE fromaddress='xxx';
  • SHOW PROFILES;

但这似乎只适用于在命令行上运行的东西,我希望看到运行网站的结果.

mysql sql profiling database-tuning

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

如何分析和获取Javascript性能

可能重复:
分析javascript执行的最佳方法是什么?

我有一些使用jQuery的脚本,我想其中一个有内存泄漏.

如何分析和查找我使用最多内存/ CPU的脚本的哪些部分?

javascript performance profiling memory-leaks

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

随机森林产出解释

我为我的数据运行了一个随机的森林,并以矩阵的形式得到了输出.它适用于分类的规则是什么?

PS我希望客户的个人资料作为输出,例如来自纽约的人,在科技行业工作,等等.

如何解释随机森林的结果?

profiling r random-forest output

26
推荐指数
3
解决办法
5万
查看次数

Haskell快速并发队列

问题

你好!我正在编写一个日志库,我很乐意创建一个在单独的线程中运行的记录器,而所有应用程序线程都只是向它发送消息.我想为这个问题找到性能最佳的解决方案.我在这里需要简单的unboud队列.

途径

我已经创建了一些测试来查看可用解决方案的执行情况,我在这里得到了非常奇怪的结果.我测试了4个实现(下面提供的源代码)基于:

  1. 管道并发
  2. Control.Concurrent.Chan
  3. Control.Concurrent.Chan.Unagi
  4. 基于"Haskell中的并行和并发编程"一书中描述的MVar请注意,这种技术为我们提供了容量为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.Concurrent (forkIO)
import qualified Control.Concurrent.Chan.Unagi as U
import Control.Concurrent.MVar
import Criterion.Main

data Event = Msg String | Status | Quit deriving (Show)

----------------------------------------------------------------------
-- Pipes
----------------------------------------------------------------------

pipesLogMsg = yield (Msg "hello")
pipesManyLogs num = replicateM_ num pipesLogMsg

pipesAddProducer num …
Run Code Online (Sandbox Code Playgroud)

concurrency profiling haskell stm haskell-pipes

25
推荐指数
2
解决办法
2207
查看次数