yourkitprofilerservice.java

来自「提供ESB 应用mule源代码 提供ESB 应用mule源代码」· Java 代码 · 共 187 行

JAVA
187
字号
/* * $Id: YourKitProfilerService.java 11249 2008-03-07 14:59:58Z tcarlson $ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */package org.mule.module.management.mbean;import org.mule.module.management.i18n.ManagementMessages;import com.yourkit.api.Controller;import edu.emory.mathcs.backport.java.util.concurrent.atomic.AtomicBoolean;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;public class YourKitProfilerService implements YourKitProfilerServiceMBean{    /**     * logger used by this class     */    protected transient Log logger = LogFactory.getLog(getClass());    private final Controller controller;    private AtomicBoolean capturing = new AtomicBoolean(false);    public YourKitProfilerService() throws Exception    {        controller = new Controller();    }    /**     * {@inheritDoc}     */    public String getHost()    {        return controller.getHost();    }    /**     * {@inheritDoc}     */    public int getPort()    {        return controller.getPort();    }    /**     * {@inheritDoc}     */    public String captureMemorySnapshot() throws Exception    {        return controller.captureMemorySnapshot();    }    /**     * {@inheritDoc}     */    public String captureSnapshot(long snapshotFlags) throws Exception    {        return controller.captureSnapshot(snapshotFlags);    }    /**     * {@inheritDoc}     */    public void startAllocationRecording(long mode) throws Exception    {        controller.startAllocationRecording(mode);    }    /**     * {@inheritDoc}     */    public void stopAllocationRecording() throws Exception    {        controller.stopAllocationRecording();    }    /**     * {@inheritDoc}     */    public void startCPUProfiling(long mode, String filters) throws Exception    {        controller.startCPUProfiling(mode, filters);    }    /**     * {@inheritDoc}     */    public void stopCPUProfiling() throws Exception    {        controller.stopCPUProfiling();    }    /**     * {@inheritDoc}     */    public void startMonitorProfiling() throws Exception    {        controller.startMonitorProfiling();    }    /**     * {@inheritDoc}     */    public void stopMonitorProfiling() throws Exception    {        controller.stopMonitorProfiling();    }    /**     * {@inheritDoc}     */    public void advanceGeneration(String description)    {        controller.advanceGeneration(description);    }    /**     * {@inheritDoc}     */    public String forceGC() throws Exception    {        long[] heapSizes = controller.forceGC();        return ManagementMessages.forceGC(heapSizes).getMessage();    }    /**     * {@inheritDoc}     */    public void startCapturingMemSnapshot(final int seconds)    {        if (!this.capturing.compareAndSet(false, true))        {            return;        }        final Thread thread = new Thread(                new Runnable()                {                    public void run()                    {                        try                        {                            while (capturing.get())                            {                                controller.captureMemorySnapshot();                                Thread.sleep(seconds * 1000 /* millis in second */);                            }                        }                        catch (Exception e)                        {                            logger.error("Failed to capture memory snapshot", e);                        }                    }                }        );        thread.setDaemon(true); // let the application normally terminate        thread.start();    }    /**     * {@inheritDoc}     */    public void stopCapturingMemSnapshot()    {        this.capturing.set(false);    }    /**     * {@inheritDoc}     */    public long getStatus() throws java.lang.Exception    {        return (this.capturing.get()) ? (controller.getStatus() | SNAPSHOT_CAPTURING) : controller.getStatus();    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?