是否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