是否instanceof
关键字熊与它在Android平台上相对较重的影响,(多speciffically运行在Dalvik VM的手机?影响
影响
回答
我不认为instanceof
熊在Dalvik虚拟机更重的影响相对于JVM。
如果您有任何疑问,你可以看到自己,当你运行了一个名为分配跟踪工具,标配作为DDMS工具应用程序。
这有助于感谢。 – Michiel 2010-02-14 01:22:29
我发现t帽子instanceof大多更快(大约60-85%的时间)。但是,当手机显示背景活动(例如GC,触摸,按钮,晃动等)时,这个百分比会下降,但instanceof在50%以上的时间内保持更快。当循环次数非常大时(即> 1000000),instanceof几乎总是更快。 呈现两个while循环的顺序(即首先是instanceof循环,然后是字段检查循环)会影响结果,但instanceof仍然是最快的。
AbstractParticle circleParticle = new CircleParticle();
int cycles = 100000
long now1 = System.currentTimeMillis();
int i = 0;
while(i<cycles) {
if(circleParticle instanceof CircleParticle) {
i++;
}
}
long timetaken1 = (System.currentTimeMillis()-now1);
long now2 = System.currentTimeMillis();
int j = 0;
while(j<cycles) {
if(circleParticle.type == AbstractParticle.TYPE_CIRCLE) {
j++;
}
}
long timetaken2 = (System.currentTimeMillis()-now2);
if(timetaken1 < timetaken2) {
type1won++;
}
else if(timetaken2 < timetaken1){
type2won++;
}
Log.d("instanceof test","type 1 favoured : "+((float)type1won/(type1won+type2won)));
你的同样是无稽之谈,i和j不在循环之后使用,所以很有可能循环从正在运行的代码中被忽略,因为它们在运行它们时没有意义。 – 2010-02-21 08:45:36
明智的话,我应该检查一下;谢谢。然而,这给我留下了一些问题:如何加快速度,以及为什么随着“周期”的增加,时间会增加。 我会记住您在将来构建测试时所指出的内容。 – Michiel 2010-02-21 11:37:49
- 1. 影响
- 2. 影响
- 3. 影响
- 4. 影响
- 5. 影响
- 6. 影响
- 7. 影响
- 8. Klout中的影响者和影响力
- 9. 影响影响所有在css按钮
- 10. 性能影响
- 11. 的iOS:HMGLTransition影响
- 12. Realloc影响fgets
- 13. HTML5的影响,
- 14. TYPE_INT_ARGB_PRE的影响
- 15. NGRX - 上影响
- 16. 影响到Serverperformance
- 17. 影响父只
- 18. 了slideDown影响
- 19. 影响MySQL的
- 20. 宽度影响外
- 21. LINQ性能影响
- 22. savedInstanceState记忆影响
- 23. popViewControllerAnimated会影响viewwillappear?
- 24. 标签影响ggplot
- 25. 列数影响cassandra?
- 26. max_execution_time影响上传?
- 27. iPhone OpenAL的影响
- 28. iOS:NavigationController:BarBackButtonItem影响宽度
- 29. NSTimer没有影响...?
- 30. 影响Internet Explorer的
为什么你会对Android产生较大的影响而不是Java? – 2010-02-13 23:14:12
安东尼,因为它是一个完全不同的虚拟机,基于寄存器而不是基于堆栈? – 2010-02-13 23:20:02
为什么instanceof会创建垃圾? instanceof测试对象是否是某种类型的实例,它不涉及方法调用或对象创建。你为什么要问一个毫无意义的问题,加入毫无意义的无关VM概念? – 2010-02-21 08:47:29