// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= NetBeans IDE 中的性能分析点、进一步浏览图、堆查看器
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: NetBeans IDE 中的性能分析点、进一步浏览图、堆查看器 - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, NetBeans IDE 中的性能分析点、进一步浏览图、堆查看器

|===
|此演示说明了 NetBeans IDE 中的三项分析器功能：进一步浏览图（简化查看应用程序在哪个类别下花费时间的过程）、性能分析点（用于从应用程序中控制分析器的操作）以及堆查看器（用于跟踪内存泄漏）。

作者：Gregg Sporar
播放时长：7:00

下载 (11.8 MB)

如果在播放该视频时遇到问题，则可以从此link:https://netbeans.org/download/flash/netbeans_60/profiler/profiler.html[+镜像站点+]将其传输到新的浏览器页面中。

link:../../../community/media.html[+所有的 NetBeans IDE 截屏视频+]

link:/about/contact_form.html?to=3&subject=Feedback:%20Screencast%20-%20Profiling%20Points,%20Drill%20Down%20Graph,%20Heap%20Walker[+发送有关此教程的反馈意见+] |

无法加载 Flash 播放器。

 
|===
