仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1512|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之Optimizeit Profiler概览

[复制链接]
只想知道 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:48:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在1995年5月23日以“Java”的名称正式发布了。
OptimizeitProfiler概览















本文经由过程先容OptimizeitProfiler的一些次要特性来使你对它有个扼要的懂得。假如想要晓得更多的信息,请检察OptimizeitProfiler用户手册。能够从OptimizeitProfiler单击主菜单info|help来检察一切的利用文档。

利用中有何成绩,请随时与BorlandTechnicalSupport接洽。

启动使用程序







OptimizeitProfiler是经由过程在一个自力的假造机上运转使用程序来搜集有效的信息。

在运转一个java程序前,必要安装一个java假造机。OptimizeitProfiler默许设置是JDK1.4or1.4.1。假如你想利用的别的的假造机,能够检察OptimizeitProfiler用户手册中的怎样增添分外的假造机部分。

OptimizeitProfiler可用来测试任何范例的java程序:尺度的使用程序、使用小程序、servlets、jsp,ejb等。本文所利用的都是演示程序,包括在Optimizeitquichktour目次下。文中一切的演示都可以此来完成。

1、翻开OptimizeitProfiler;

2、假如你是第一次翻开,将会主动弹出编纂设置窗口。假如已翻开,能够从file菜单下选择newsetting,修改编纂设置窗口。

3、在程序范例框当选择Application。

4、单击"ProgrammainclassorJarfile"左面的“Browse…”按钮。

5、找到docprofilerquicktourQuickTourApp.jar文件,然后单击open。

6、Profiler会前往到设置窗口,而且主动带进程序的事情区和类路径。在SourcePath框中,单击change…按钮。

7、在Sourcepathchooser窗口中,选择安装路径下的docprofilerquicktour目次;选中docprofilerquicktourQuickTourApp.jar文件后单击窗口中的向下按钮把它到场到sourcepath部分。

8、单击ok增添到源文件中路径中。设置好后的对话框以下:





9、单击Startnow按钮。

10、编纂窗口会主动封闭,而且OptimizeitProfiler主动加载事例程序。

利用MemoryProfiler







当你是第一次利用该工具,Optimizeit主动翻开到内存监督窗口:









内存监督器列出了被测程序中一切的类而且及时统计每一个类的实例的数量。内存监督器默许是以堆形式翻开,如许可以看到对象的创立和打消。上面的步骤将演示将先容怎样把持内存监督器以便于剖析被测程序的内存利用情形:







1、单击内存监督器表头的instancecount。如许将依照已分派的实例数来举行降序分列。







2、在内存监督器窗口下方的Filters窗口中,输出你想察看的某个类,在filters框中输出Java.awt.*,而且按回车键;如许将只显现java.awt类的相干信息。







3、我们能够看到,很多类的实例数要末增添,要末削减。增添是由于有实例天生,而削减是由于渣滓接纳在起感化。假如要检察一时对象的创立,能够选中窗口右边底部的Disablegarbagecollector按钮,如许Optimizeit将一向延续显现一切实例的数量。















4、选中java.awt.Color类,然后单击AllocationBacktrace按钮进进allocationbacktrace形式。你也能够在类名上双击进进。Backtrace信息显现了类的每一个实例中的办法被挪用的信息。







5、在AllocationBacktrace视图中,能够以两种体例来检察信息:







lHierarchicalview分层形式默许显现树形图。在树形图中,某个办法大概显现在多个中央,在于谁挪用了这个办法。可是在图形视图中,节点暗示的办法仅显现一次。它仍旧能够有多个父路径。







lIntheAggregatedview图表形式每一个节点将利用线毗连起来,大概是到了界限只要一边有线。从有多个子节点入手下手,每条连线对应一个挪用这个办法的办法。与树形分歧的是,图表中大概存在轮回。图表显现有助于举行跟踪。假如你想找出一条语句是怎样被挪用的,那末图表将是一种疾速而浅易的办法,经由过程图表你能够敏捷地找出有父子干系的对象。







可使用按钮在两种体例之间切换。







6、选中EventDispatchThread.run()行,单击右边的加号睁开。单击比率最年夜的节点,直到睁开Graphics2d.fill3DRect()举动止。















7、双击Graphics2d.fill3DRect()行,将显现色彩实例分派的源代码。源代码将有助于你了解为何绘制路径类发生了云云多的实例。fill3DRect办法分派了很多的色彩,是由于它挪用了Color.brighter()办法andColor.darker()办法。







注重:假如你是第一次利用者,你大概没有图中的源代码路径。







利用内存监督器,能够匡助你创立更少的一时对象。固然一时对象常常很快便被析构,但是它会招致渣滓搜集加倍频仍。关于年夜多半java假造机来讲,当渣滓搜集器对照忙时,运转任何的java程序城市提早几百毫秒。假如利用了过量的一时对象,因为这个缘故原由会以致用户感到到程序反响迟缓。







内存监督器同时有助于了解为何渣滓搜集器没有析构这些对象。比方,它将匡助我们我们懂得当一个对象不再被利用时的确被渣滓搜集器析构失落。上面的步骤形貌了利用内存监督器来判别一个实例的发生和怎样被渣滓搜集器搜集。







1、单击图标前往到堆形式。







2、为了只显现与Image-related相干的类,能够扫除fileters框中的内容,然后输出*image*,然后按回车键。







3、选中javax.swing.ImageIcon行,然后单击图标(显现实例和参考图),显现出了实例图:















窗口的上方显现了实例的字符形貌。







窗口两头部分显现了所选实例对象参考和由对象所派生的实例。在这类情形下,由于ImageIcon对象被援用了,以是渣滓搜集器没有搜集。







窗口最下方部分显现了两头窗口所选实例的分派路径。能够看出实例是机关器QuickTourApp分派的。这个图象就是作为背景显现在程序两头的Optimizeit的logo。







内存泄露常常是因为在程序运转中一连地援用对象,因而他们仍旧占用资本。正由于云云,假如你可以定位到利用大批援用的对象,那末你就可以够定位至对象占用资本招致内存泄露的本源。为了可以定位到利用大批援用的对象,而且跟踪这些援用:







1、翻开内存泄露检测,单击内存泄露监测按钮。







2、为了查找大概的内存泄露,Profiler必要对照一系列堆的形态。能够单击保留堆形态按钮来创立。







3、让quicktour程序运转15秒以上。







4、再次单击保留堆形态按钮纪录一个新的堆形态纪录。你能够创立多个堆形态纪录。







5、Fromheapstate表中为要作为对照的初始形态,Toheapstate表中为要与Fromheapstate作对照的形态。每中选中Fromheapstate表中的纪录后,Toheapstate表中只能选择该纪录以后的纪录。







6、窗口的两头部分显现了被对照堆形态纪录以后新援用的资本。Count值是这个对象递增援用的数目。能够单击count表头举行排序。你能够选择一个援用来检察堆形态中一切与这个对象援用有关的对象援用。















7、图中的对象将有毗连线大概界限。从根节点入手下手,都有一个响应的援用。把鼠标移到节点下面,将会显现新援用的数量和该节点挪用toString()的。把鼠标移到末级节点上,将会显现这个援用的实例变量名。







8、在图的上方有两个转动条:







利用具体水平转动条来调治图表显现的具体水平。







利用缩放转动条来调治图表显现的巨细。







一切分歧的色彩代表分歧的意义:







l蓝色节点为直接援用句柄。暗示不是间接援用,而是援用的援用。







l白色节点为援用句柄。暗示是间接援用。







l节点的援用越多,色彩越深。







l后续毗连显现为绿色线条。后续毗连在援用中关于一个对象是更高条理的援用。一切的后续毗连的边框为蓝色。在援用条理中前续毗连是后续毗连的一个援用。







l中选择一个节点今后,与这个节点相干的援用将会闪灼显现。







l选中一个节点然后单击鼠标右键,将会在一个新的实例中翻开所选择的节点。







利用CPUProfiler







内存监督器有助于对对象的最小化利用。CPU监督器将有助于你懂得对象所利用的工夫。CPU监督器在java假造机中可被看做是一个纪录设备。上面的步骤形貌了怎样给出被测试程序的呼应工夫和CPU利用率。







1、单击CPU监督按钮切换到CPU监督界面。







2、单击入手下手CPU监督按钮入手下手纪录程序的CPU利用率。







3、让程序运转一段工夫(好比三秒以上)。







4、单击中断CPU监督按钮中断纪录。CPU监督器显现出了已纪录的CPU利用信息。















5、假如没有选上,请选择树形格局,看到的信息是一样的。







6、单击窗口上方的下拉框能够显现出假造机以后运转一切的线程。















7、选择AWT-EventQueue-0thread线程,该线程被AWT利用来处置工夫,比方repaint事务。







8、睁开EventDispatchThread.pumpOneEvent()行。







9、单击EventQueue.dispatchEvent()左方的加号睁开一切的办法,直到睁开到JComponent.paintWithBuffer()办法。行后面的图标所暗示的意义为:







暗示该办法间接被别的一个办法挪用。







暗示实行工夫最长的办法。







在这个例子中AWT-EventQueue-0线程一向用途理repaint事务。







10、选择JComponent.paintWithBuffer()行。假如鼠标移到JComponent.paintWithBuffer()所挪用的办法上,将显现在JComponent.paintWithBuffer()中该办法所利用的工夫比例。







11、假如要剖析谁人线程是余暇的,CPU监督器能够同时显现CPU利用率和利用工夫。单击inspector(tool菜单下)翻开inspector对话框。















12、不选中OnyrecordCPUusage,然后封闭窗口。利用这个特性来选择缓冲战略,默许显现的是CPU纯利用信息。







检察假造机信息







Optimizert供应了及时显现与数据相关的高尺度功能测试的信息。利用这个特性,你能够懂得到功能成绩是和CPU有关仍是和内存有关,大概与二者都有关。







单击,切换到假造机形式。







在这类形式下,显现四类功能图标,每类图表形貌了假造机分歧的举动信息:















堆图表:左上角的图表中白色线暗示被测程序以后必要的仓库的巨细,绿色暗示被测程序实践利用的仓库的巨细。







渣滓搜集图表:有上角的图中显现以后渣滓搜集器的举动,显现了渣滓搜集工夫占总工夫的比例。有助于察看渣滓搜集器利用的频次和工夫。







线程图:左下角的图中白色线暗示以后运转的线程,绿色暗示年夜多半的线程利用CPU。







类图:右下角的图显现了假造机以后加载的类的数量。







检察测试了局







Optinizeit包括了很多办法来检察测试了局,就象下面的及时监控办法乐成一样,也能够把一切的信息保留在一个快照中或呈报中,如许你就能够在今后剖析了局大概和别的一个了局举行对照。







比方,你能够把测试了局输入为一个html文件。







1、当演示程序还在运转时,单击CPU监督器前往到CPU监督界面。







2、为了检察一切的信息,完整睁开一切的办法。确认你必要的信息都显现在条理视图中,由于输入中不会包括图表。







3、单击输入图标翻开输入窗口:















4、填写题目,反省filename框中的路径是无效的,而且选择输入为.html格局。







5、单击ok,Optimizeit会把了局输入到界说的.html文件中,然后会主动翻开。















如今你就能够共享你的测试了局了。















本文只是OptimizeitProfiler的一个概览。假如想要懂得更多有关Optimizeit的信息,请检察OptizeitProfiler用户指南。















翻译:wyingquan@hotmail.com工夫:2004-11-5















你希望java的IDE整合。这个是没有必要的,重要的是你理解java有多深以及怎么组织你的代码,即使没有IDE,代码照样能够编译运行的。
小女巫 该用户已被删除
沙发
发表于 2015-1-21 13:40:16 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
精灵巫婆 该用户已被删除
板凳
发表于 2015-1-30 19:26:56 | 只看该作者
是一种为 Internet发展的计算机语言
简单生活 该用户已被删除
地板
发表于 2015-2-1 10:30:47 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
admin 该用户已被删除
5#
发表于 2015-2-4 13:23:16 | 只看该作者
你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢?
飘飘悠悠 该用户已被删除
6#
发表于 2015-2-6 15:17:46 | 只看该作者
其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
海妖 该用户已被删除
7#
发表于 2015-2-16 20:38:27 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
只想知道 该用户已被删除
8#
 楼主| 发表于 2015-2-16 22:22:24 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
若天明 该用户已被删除
9#
发表于 2015-3-5 11:01:55 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
深爱那片海 该用户已被删除
10#
发表于 2015-3-12 04:22:56 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
蒙在股里 该用户已被删除
11#
发表于 2015-3-19 17:57:02 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
12#
发表于 2015-3-20 00:25:06 | 只看该作者
是一种使用者不需花费很多时间学习的语言
活着的死人 该用户已被删除
13#
发表于 2015-3-27 12:08:54 | 只看该作者
如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
爱飞 该用户已被删除
14#
发表于 2015-4-6 05:08:33 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
第二个灵魂 该用户已被删除
15#
发表于 2015-4-18 11:52:27 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
灵魂腐蚀 该用户已被删除
16#
发表于 2015-4-21 18:21:33 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
飘灵儿 该用户已被删除
17#
发表于 2015-5-10 01:48:37 | 只看该作者
在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。
分手快乐 该用户已被删除
18#
发表于 2015-5-10 12:12:51 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
透明 该用户已被删除
19#
发表于 2015-6-16 20:14:49 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
柔情似水 该用户已被删除
20#
发表于 2015-6-19 09:52:46 | 只看该作者
Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 11:50

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表