// 
//     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.
//

= Точки профилирования, детализированные графики, анализатор кучи в IDE NetBeans
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Точки профилирования, детализированные графики, анализатор кучи в IDE NetBeans - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Точки профилирования, детализированные графики, анализатор кучи в IDE NetBeans

|===
|В этой демонстрации показаны три из функции средства профилирования в IDE NetBeans: детализированный графики, который упрощает определение категорий, в которых используется данное приложение, точки профилирования, позволяющие управлять действиями средства профилирования из приложения, и анализатор кучи, который используется для отслеживания утечек памяти.

Автор: Грег Спорар (Gregg Sporar)
Продолжительность: 7:00

link:http://mediacast.sun.com/details.jsp?id=4030[+Загрузить+] [11,8 МБ]

При возникновении проблем с воспроизведением видео можно выполнить его потоковую передачу на новую страницу браузера с этого link:https://netbeans.org/download/flash/netbeans_60/profiler/profiler.html[+зеркала веб-сайта+].

link:../../../community/media.html[+Все экранные демонстрации IDE NetBeans+]

link:/about/contact_form.html?to=3&subject=Feedback:%20Screencast%20-%20Profiling%20Points,%20Drill%20Down%20Graph,%20Heap%20Walker[+Отправить отзыв по этому учебному курсу+] |

Не удается загрузить проигрыватель Flash.

 
|===
