<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!--
Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved.
-->

<html>
<head>
    <title>NetBeans IDEでのプロファイリング・ポイント、ドリルダウン・グラフ、ヒープ・ウォーカ</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
    <link rel="stylesheet" type="text/css" href="../../../netbeans.css">
</head>
<body>
    

<h1>NetBeans IDEでのプロファイリング・ポイント、ドリルダウン・グラフ、ヒープ・ウォーカ</h1>

<table><tr><td class="valign-top">

<p>
このデモは、NetBeans IDEのプロファイラ機能のうちの3つ、つまり、アプリケーションがどのカテゴリで時間を消費しているかを確認しやすくするドリルダウン・グラフ、ユーザーがアプリケーション内からプロファイラのアクションを制御できるようにするプロファイリング・ポイント、およびメモリー・リークをトラックするためのヒープ・ウォーカを紹介しています。
</p>
<p>作成者: Gregg Sporar<br>時間: 7:00 </p>
<p><a href="http://mediacast.sun.com/details.jsp?id=4030">ダウンロード</a> (11.8MB)</p>
<p>
  ビデオの再生で問題が発生した場合は、この<a href="https://netbeans.org/download/flash/netbeans_60/profiler/profiler.html">ミラー・サイト</a>から新しいブラウザ・ページにストリーミングできます。</p>
<p><a href="../../../community/media.html">すべてのNetBeans IDEスクリーンキャスト</a></p>
<div class="feedback-box">
    <a href="/about/contact_form.html?to=3&amp;subject=Feedback:%20Screencast%20-%20Profiling%20Points,%20Drill%20Down%20Graph,%20Heap%20Walker">このチュートリアルに関するご意見をお寄せください</a>
</div>

</td><td width="425" class="valign-top align-center">

<script type='text/javascript'>
var var_pid = "6433";
var var_furl = "http://netbeans.tv/images/";
var var_notPanorama = "0";
var var_altLink = "http://mediacast.sun.com/details.jsp?id=4030";
</script>

<div id="videoPlayer" class="video">
<p>フラッシュ・プレイヤを読み込むことができません。</p></div>

<script type="text/javascript"> 

<!--  
    var so = new SWFObject(var_furl+"playerWidget.swf" , "pv", "410", "331", "8", "#666666"); 
    so.addParam("quality", "high"); 
    so.addParam("allowScriptAccess", "sameDomain"); 
    //so.addParam("menu", "false");   
    so.addParam("allowFullScreen", "true"); 
    so.addVariable("autoPlay", "false"); 
    so.addVariable("urlFileIdList", var_pid); 
    so.addVariable("show_title", "true"); 
    so.addVariable("PLAY_CALLBACK","emphasize");  
    so.addVariable("resizeLimitMax","true");
    so.addVariable("lang", "en"); 
    so.addVariable("flash_play","true");
    so.addVariable("author_name","NetBeans.tv");
    so.addVariable("configUrl",'http://sun.ora.ma/config.sun.ora.ma.xml');
    if (var_notPanorama == '1')
    {
        so.addVariable("clickAction","clickAction");    
    }
    so.write("videoPlayer");  
// --> 

</script>

</td></tr>
</table>

</body>
</html>
