对JavaFX Mobile应用程序进行性能分析

注意:本文最初发表于2009年,仅供参考。 请查阅我们其余的JavaFX文章 。

对于每个JavaFX Mobile应用程序开发人员来说,今天都是美好的一天。 你想知道为什么吗? 因为JavaME SDK 3.0已发布。 根据我午休时听到的消息,这是漫长而艰苦的工作,但结果却是一个了不起的工具。 祝贺整个团队,我期待与你们一起庆祝这一发布!

有些人可能现在想知道,JavaME SDK – JavaFX Mobile,连接在哪里? JavaME SDK最终实现了JavaFX Mobile迄今为止隐藏的功能:概要分析-我认为它成为JavaFX Mobile开发人员最重要的工具。 (好吧,也许我在这里有点偏见,因为绩效是我的日常工作……)

哦,是的。 JavaME SDK还是开发JavaME应用程序的绝佳工具-至少我听说过。

本文的其余部分将说明如何启用分析器,进行概要分析时要考虑的内容以及最终如何查看结果。

启用分析器

要启用对JavaFX Mobile应用程序的性能分析,您需要更改VM的设置。 只需更改一个预定义设备的属性即可方便地实现这一目的(或者,您也可以显式定义一个新的设备进行性能分析。)要启用默认设备DefaultFxPhone1的性能分析,请在〜/ javafx-sdk /中打开文件device.properties。 1.1 / work / 0,位于您的家庭文件夹中。 您需要至少启动一次模拟器,以便创建文件夹和文件。 如果您查看内容,它将类似于以下内容:

#
# Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
phone.number: 123456789
runtime.internal.com.sun.io.j2me.apdu.hostsandports = localhost:9025,localhost:9026
profiler.enabled: false
profiler.file: data.prof
netmon.enabled: false
runtime.internal.JAVA_HEAP_SIZE: 15728640
runtime.internal.MAIN_MEMORY_CHUNK_SIZE: 26214400
runtime.internal.microedition.locale: en-US

device.properties的文件内容

对于配置文件,我们仅对profiler.enabled和profiler.file属性感兴趣。 通过设置标志profiler.enabled启用分析:

profiler.enabled: true

属性profiler.file确定分析数据的存储位置。 如果不更改默认值,它将被存储在data.prof文件中与device.properties相同的目录中。 更改属性后,必须重新启动仿真器和设备管理器。

运行分析会话

现在无论何时在模拟器中运行应用程序,都将对其进行概要分析。 应用程序完成后,结果将存储在device.properties中配置的文件中。 请注意,如果您运行两个应用程序,则整理第二个应用程序将覆盖第一个应用程序的配置文件数据,因此请确保在运行第二个应用程序之前复制文件。

在进行概要分析时,需要考虑两个问题。 首先,已分析的应用程序运行速度非常慢。 实际上,它运行得如此缓慢,以至于即使不是不可能,任何用户交互都非常困难。 最好的选择是使您的测试完全自动化,而无需用户交互。 缓慢的执行也会影响动画,分析时几乎所有帧都将丢失。 如果执行更多帧很重要,则可以更改动画的持续时间。

要考虑的另一个问题是,在应用程序完成后,VM需要一些时间才能将分析数据写入文件系统。 如果直接关闭仿真器窗口,则VM将立即关闭,并且带有分析数据的文件通常已损坏。

解决此问题的一种方法是确保应用程序本身完成。 您可以随时调用FX.exit()退出JavaFX应用程序。 如果您需要手动停止应用程序,请按设备上的红色取消按钮。 这会将JavaFX应用程序置于后台,并显示AMS(应用程序管理系统)。 从那里可以通过选择正在运行的应用程序并从菜单中选择“结束”来结束应用程序而无需停止VM。

查看分析数据

这是JavaME SDK终于发挥作用的地方。 启动SDK,然后从工具菜单中选择条目“导入Java ME SDK快照...”,以加载在分析会话中生成的文件。 这将打开一个类似于NetBeans中探查器窗口的视图,并为您提供了易于使用的表示所生成数据的表示形式。

参考: Mike博客博客中的JCG合作伙伴 Michael Heinrichs对JavaFX Mobile应用程序进行了性能分析 。


翻译自: https://www.javacodegeeks.com/2012/06/profiling-javafx-mobile-applications.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372515.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

第六天20160810

a) 形参与实参 一、 形参为基本数据类型:形参改变,实参不变。 二、 形参为引用数据类型:形参改变,实参通常都会改变。 b) 可变长参数:JDK1.5开始出现 一、可变长参数只能用于…

android原生系统开发板,安卓学习必备开发板-Rayeager PX2

由谷歌主导并推动的移动终端操作系统Android,由于其开源开放的特性,自发布之日起便受到全球各大IT厂商的欢迎。在各厂商的热情推动下,基于Android系统的手机、平板、智能手表等各类产品层出不穷,迅速普及到人们的日常生活&#xf…

变量类型取值范围

ascii:Oct Dec Hex Char──────────────────────────101 65 41 A102 66 42 B103 67 43 C141 97 61 a142 98 62 b143 99 63 c 取值范围:-1 ~ 0xFFFFFFFF ~ 全1127 ~ 0x7F255 ~ 0xFF ~ 11111111 char -128 ~ 127 …

热点中的即时编译器(JIT)

即时编译器(JIT)的概念以及更广泛的自适应优化是除Java(.Net,Lua,JRuby)之外的许多语言中众所周知的概念。 为了解释什么是JIT编译器,我想先定义一个编译器概念。 根据维基百科,编译…

3.30下午

在另一台机子安装VMware workstation12和win8服务器 总是秘钥不行 很烦转载于:https://www.cnblogs.com/bgd140206314/p/6647159.html

Java并发性-任务反馈

从我 上一篇 关于java.util.concurrent包的 文章 的结尾处 摘下来 ,这很有趣,有时甚至必须在并发任务启动后从它们那里获得反馈。 例如,假设一个应用程序必须发送电子邮件批处理,除了使用多线程机制外,您还想知道成功发…

JS中的函数(二):函数参数(你可能不知道的参数传递)

前言: 函数分为有参有返回值,有参无返回值,无参无返回值,无参有返回值;那么对于无参数的函数你想使用函数的调用怎么办呢?如果你想封装一个代码,实现多种功能,但是形参大于实参或者实…

jq查找字段忽略html标签,jQuery过滤HTML标签并高亮显示关键字的方法

本文实例讲述了jQuery过滤HTML标签并高亮显示关键字的方法。分享给大家供大家参考。具体如下:jQuery实现网页关键字过滤效果,将需要过滤的文字定义在JavaScript中,可定义多个,不过要修改JS代码为数组,这样可过滤出多个…

Jmeter参数化 CSV Data Set Config界面说明

Filename:指保存信息的文件目录,可以相对或者绝对路径,相对路径从Jmeter 的启动目录(***/bin)路径。 File Encoding:文件编码,默认为ANSI,建议设置为utf-8,防止遇见乱码情况。 Variable Names:参…

java.lang.NoClassDefFoundError:如何解决–第1部分

线程“ main”中的异常java.lang.NoClassDefFoundError是开发Java EE企业版或独立Java应用程序时可能会遇到的常见难题之一。 根本原因分析和解决过程的复杂性主要取决于Java EE中间件环境的大小。 特别是考虑到各种Java EE应用程序中存在大量的ClassLoader。 我向您建议的一系…

android 日期国际化,Flutter 日期时间选择类控件及国际化

注意:无特殊说明,Flutter版本及Dart版本如下:Flutter版本: 1.12.13hotfix.5Dart版本: 2.7.0DatePickerFlutter并没有DatePicker这个控件,需要使用showDatePicker方法弹出日期选择控件,基本用法如…

英式英语 vs 美式英语

0. 常见不同 日期的表达: 美国:月日年;英国:日月年;1. 发音 schedule,美 [‘skɛdʒul],英 [ˈʃɛdjuːl]pecan,山核桃,英 [‘piːk(ə)n;],美 [pɪ’kɑn]a…

Java多线程:线程间通信之volatile与sychronized

由前文Java内存模型我们熟悉了Java的内存工作模式和线程间的交互规范,本篇从应用层面讲解Java线程间通信。 Java为线程间通信提供了三个相关的关键字volatile, synchronized和final。对于final,我们在博文Java中static关键字和final关键字中已经介绍。 1…

避免Java中的空指针异常

空指针异常是Java中最常见,最烦人的异常。 在这篇文章中,我想避免这种不希望的异常。 首先让我们创建引发空指针异常的示例 private Boolean isFinished(String status) { if (status.equalsIgnoreCase("Finish")) { return Boolean.TRUE; …

权威发布 鸿蒙涅槃,鸿蒙涅槃 曾圣《鸿蒙》雕塑走进河北美院受追捧

原标题:鸿蒙涅槃 曾圣《鸿蒙》雕塑走进河北美院受追捧2019年10月20日上午10时曾圣《鸿蒙》雕塑作品展——暨河北美院首场新闻媒体发布会在河北美术学院雕塑院举办。河北美术学院校长甄忠义、河北美术学院党委书记高国忠、常务副校长张建敏、党委副书记甄心恒、副校长…

Rube GoldbergSpring整合

Spring Integration为集成系统所涉及的某些复杂性提供了非常好的抽象-Spring Integration从Integration的角度来看非常适合Facade的定义-简化了对复杂底层系统的访问。 为了说明这一点,请考虑一个简单的系统,该系统仅接收一条消息,然后将其发…

NSNotificationCenter

前几天面试富途证券&#xff0c;被问到添加通知的相关问题&#xff0c;当时有几个问题答错了&#xff0c;在此总结。 使用通知的要点 1.注册多少次&#xff0c;他的执行代码就会执行多少次 //1、注册多个通知 for (int i 0; i<3; i) {[[NSNotificationCenter defaultCenter]…

java ajax html复选框,HTMLjavaSkcriptCSSjQueryajax(九)(示例代码)

一、HTML1、单选按钮 Male Female2、复选框 I have a Car3、下拉列表 VoloFita如果设置某项选定直接 fem4、设置文本域 创建按钮 5、Runnob.com因为a 标签的target属性名是inframe_a的iframe框架&#xff0c;点击链接后页面会在iframe 中出现。6、脚本 JavaScript …

Spring和JSF集成:选择项目

使用JSF&#xff0c;要使用组合框&#xff0c;列表框和复选框&#xff0c;您需要了解javax.faces.model.SelectItem类。 SelectItem表示单个可选选项。 它既包含渲染所需的信息&#xff0c;又包含选择该项目时应绑定的值。 在大多数情况下&#xff0c; SelectItems是使用值和标…

apt-get update 问题 及gcc高亮

一 gcc高亮 gcc 高亮有好几种方法。 参考 http://www.cokco.cn/thread-39909-1-1.html 这个教程&#xff1a; &#xff08;1&#xff09; git clone https://github.com/chinaran/color-compile/ &#xff08;2&#xff09; cd color-compile make sudo make install&#xff0…