Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何提高我的应用程序的速度?_Java_Blackberry_Java Me - Fatal编程技术网

Java 如何提高我的应用程序的速度?

Java 如何提高我的应用程序的速度?,java,blackberry,java-me,Java,Blackberry,Java Me,我的应用程序需求是联系Web服务,获取xml,解析它并使用listfield显示它。我调用了所有这些类xmlhandler,objectmodel,并使用扩展mainscreen的类中的lisfield来显示它,这会使我的应用程序变慢 有人能给我建议一下怎么快点吗 弹出一个加载屏幕并启动一个线程来联系Web服务,获取xml,解析它并杀死线程,然后填充listscreen并显示它,这是否合适 欢迎提出任何建议 在做任何其他事情之前,先找出哪个部分慢。 否则,您将在错误的部分上浪费大量时间 为了完成

我的应用程序需求是联系Web服务,获取xml,解析它并使用listfield显示它。我调用了所有这些类xmlhandler,objectmodel,并使用扩展mainscreen的类中的lisfield来显示它,这会使我的应用程序变慢

有人能给我建议一下怎么快点吗

弹出一个加载屏幕并启动一个线程来联系Web服务,获取xml,解析它并杀死线程,然后填充listscreen并显示它,这是否合适


欢迎提出任何建议

在做任何其他事情之前,先找出哪个部分慢。 否则,您将在错误的部分上浪费大量时间


为了完成这种计时工作,我通常会将内部日志记录到StringBuilder中,或者可能只是记录到保存原始、未格式化数据的ArrayList中。测试结束后,我格式化并输出数据。这将日志记录对计时的影响降至最低。

在执行任何其他操作之前,先找出哪个部分速度慢。 否则,您将在错误的部分上浪费大量时间


为了完成这种计时工作,我通常会将内部日志记录到StringBuilder中,或者可能只是记录到保存原始、未格式化数据的ArrayList中。测试结束后,我格式化并输出数据。这将最小化日志记录对计时的影响。

测试程序每个部分的速度。我通常使用的是
System.nanoTime()
,并在程序的每个部分之后找出时间上的差异。

测试程序每个部分的速度。我通常使用的是
System.nanoTime()
,并在程序的每一部分之后找出时间上的差异。

我只能说,如果我错了,请原谅我-对我来说,只有在真正查看列表字段时才创建列表字段项似乎更有效。因此,我会尝试在内存中只保留解析后的字符串,并只创建当前要显示的UI项,,放弃不可见项。要使其更平滑,可以在当前页面之前和之后将其扩展一个或多个页面


这样,显示的项目数始终保持不变。您还可以向服务层添加分页,以限制一次提交的记录数。

我只能向来宾发送记录,因此如果我错了,请原谅我-在我看来,只有在真正查看记录时才创建列表项字段更有效。因此,我会尝试在内存中只保留解析后的字符串,并只创建当前要显示的UI项,,放弃不可见项。要使其更平滑,可以在当前页面之前和之后将其扩展一个或多个页面



这样,显示的项目数始终保持不变。您还可以向服务层添加分页,以限制一次提交的记录数。

这通常是正确的方法,我不知道blackberry中是否是这样做的。您是否在开始解析之前获取整个xml?那将浪费时间。您是否在流上使用缓冲?那会有帮助的。除此之外,可能还需要查看您所做的工作。您可以在列表框上放置加载消息或动画覆盖。@Hemal:您提到的是哪一个?弹出加载屏幕并启动线程?是的,网络需要时间。解析xml也需要时间。所以最好是在后台线程中执行。这通常是正确的方法,我不知道在blackberry中是否是这样做的。在开始解析之前,您是否提取了整个xml?那将浪费时间。您是否在流上使用缓冲?那会有帮助的。除此之外,可能还需要查看您所做的工作。您可以在列表框上放置加载消息或动画覆盖。@Hemal:您提到的是哪一个?弹出加载屏幕并启动线程?是的,网络需要时间。解析xml也需要时间。因此最好在后台线程中进行。感谢您的回复Ed staub,打开应用程序大约需要10秒。在大多数类似的应用程序中,计时是常见的,但是我对在不干扰mainscreen类的情况下使用单独的应用程序进行抓取过程感到困惑。你能给出一些例子吗?@Newbie-我不是有意暗示这样的事情。如果我没弄错的话,最慢的是打开(初始化)应用程序-对吗?我的意思是在应用程序中临时包含这个超轻日志。当它打开时,它将转储/显示/写入磁盘日志(以方便的为准)。它是java me、vectors和stringbuffers,它们都需要同步,以便获得相同的性能。您最好使用BB系统记录器,或者系统输出到控制台。@Ray-console-真的吗?我的经验是,它经常被阻塞,有时会成为主要的时间接收器,因为它会阻塞I/O。但我不是一个自我的人。您认为系统记录器不同步吗?可能,但我会感到惊讶。它做I/O吗?在这种情况下,它也可能通过I/O进行同步,这比任何向量对象同步都要糟糕得多。bb system logger作为一个单独的应用程序运行,我相信它只是记录到内存中,尽管它可能使用了一个同步向量:),但我认为没有什么可以避免的。谢谢你的回复Ed staub,打开应用程序大约需要10秒。在大多数类似的应用程序中,计时是常见的,但是我的朋友,我对在不干扰mainscreen类的情况下使用单独的应用程序进行抓取过程感到困惑。你能给出一些例子吗?@Newbie-我不是有意暗示这样的事情。如果我没弄错的话,最慢的是打开(初始化)应用程序-对吗?我的意思是在应用程序中临时包含这个超轻日志。当它打开时,它将转储/显示/写入磁盘日志(以方便的为准)。它是java me、vectors和stringbuffers,它们都需要同步,以便获得相同的性能。你最好和B一起去