N
naruto25
Neues Mitglied
- 0
Hallo Leute,
könnte man den folgenden code optimieren? also auf das laufzeit verhältnis gesehen. ich habe eine imageview programmiert welches die images im drawable ordner mit jedem button klick abwechselnt anzeigt.
hier der code:
es tut auch was es soll, aber beim emulator dauert das ca 15 sek. bis das bild gewechselt wird. auf meinem galaxy s2 dauert es ca 3 sekunden.
hier ist nochmal die logcat aufzeichnungen beim drücken auf den button
kann man da was rausholen? eventuell habe ich mir gedacht, dass man das feld images nacheinander und nicht random ausgibt.
danke im voraus
könnte man den folgenden code optimieren? also auf das laufzeit verhältnis gesehen. ich habe eine imageview programmiert welches die images im drawable ordner mit jedem button klick abwechselnt anzeigt.
hier der code:
Code:
ImageView image;
final int[] images = {R.drawable.comp_1, R.drawable.comp_2,...}
.....
.....
refreshbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
Random rng = new Random();
List<Integer> generated = new ArrayList<Integer>();
for (int i = 0; i < images.length; i++)
{
while(true)
{
Integer next = rng.nextInt(images.length) ;
if (!generated.contains(next))
{
generated.add(next);
image.setImageResource(images[next]);
break;
}
}
}
}
});
es tut auch was es soll, aber beim emulator dauert das ca 15 sek. bis das bild gewechselt wird. auf meinem galaxy s2 dauert es ca 3 sekunden.
hier ist nochmal die logcat aufzeichnungen beim drücken auf den button
Code:
11-29 12:56:26.314: D/dalvikvm(2471): GC_FOR_ALLOC freed 11729K, 27% free 3222K/4384K, paused 105ms, total 108ms
11-29 12:56:26.444: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:26.664: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+23ms, total 222ms
11-29 12:56:27.464: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 59ms, total 59ms
11-29 12:56:27.534: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:27.814: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 79ms+31ms, total 275ms
11-29 12:56:28.134: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 106ms, total 108ms
11-29 12:56:28.264: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:28.504: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+32ms, total 235ms
11-29 12:56:29.274: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 59ms, total 59ms
11-29 12:56:29.354: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:29.594: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 77ms+24ms, total 245ms
11-29 12:56:29.944: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 102ms, total 105ms
11-29 12:56:30.074: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:30.315: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+23ms, total 243ms
11-29 12:56:31.104: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 58ms, total 58ms
11-29 12:56:31.184: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:31.444: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 78ms+36ms, total 257ms
11-29 12:56:31.894: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 104ms, total 238ms
11-29 12:56:32.025: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:32.244: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+21ms, total 214ms
11-29 12:56:33.044: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 60ms, total 60ms
11-29 12:56:33.124: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:33.384: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 76ms+22ms, total 258ms
11-29 12:56:33.704: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 102ms, total 106ms
11-29 12:56:33.834: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:34.074: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 88ms+22ms, total 234ms
11-29 12:56:34.874: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 59ms, total 59ms
11-29 12:56:34.976: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:35.235: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 78ms+23ms, total 252ms
11-29 12:56:35.814: D/dalvikvm(2471): GC_FOR_ALLOC freed 12672K, 27% free 3223K/4384K, paused 106ms, total 112ms
11-29 12:56:35.954: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:36.204: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+32ms, total 247ms
11-29 12:56:36.974: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 67ms, total 67ms
11-29 12:56:37.044: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:37.304: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 76ms+37ms, total 254ms
11-29 12:56:37.633: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 104ms, total 110ms
11-29 12:56:37.773: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:38.013: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 77ms+42ms, total 233ms
11-29 12:56:38.784: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 59ms, total 59ms
11-29 12:56:38.853: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:39.124: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 78ms+23ms, total 270ms
11-29 12:56:39.443: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 102ms, total 103ms
11-29 12:56:39.573: I/dalvikvm-heap(2471): Grow heap (frag case) to 10.604MB for 7680016-byte allocation
11-29 12:56:39.813: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 10% free 10722K/11888K, paused 76ms+22ms, total 229ms
11-29 12:56:40.603: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 10% free 10722K/11888K, paused 63ms, total 64ms
11-29 12:56:40.683: I/dalvikvm-heap(2471): Grow heap (frag case) to 14.723MB for 4320016-byte allocation
11-29 12:56:40.946: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 8% free 14941K/16108K, paused 78ms+24ms, total 265ms
11-29 12:56:41.274: D/dalvikvm(2471): GC_FOR_ALLOC freed 11719K, 27% free 3222K/4384K, paused 104ms, total 107ms
11-29 12:56:41.293: I/dalvikvm-heap(2471): Grow heap (frag case) to 4.498MB for 1276816-byte allocation
11-29 12:56:41.524: D/dalvikvm(2471): GC_CONCURRENT freed <1K, 21% free 4469K/5632K, paused 77ms+19ms, total 222ms
11-29 12:56:41.714: D/dalvikvm(2471): GC_FOR_ALLOC freed <1K, 21% free 4469K/5632K, paused 63ms, total 63ms
11-29 12:56:41.734: I/dalvikvm-heap(2471): Grow heap (frag case) to 5.182MB for 718216-byte allocation
11-29 12:56:41.935: D/dalvikvm(2471): GC_CONCURRENT freed 0K, 19% free 5170K/6336K, paused 77ms+18ms, total 203ms
11-29 12:56:41.935: D/dalvikvm(2471): WAIT_FOR_CONCURRENT_GC blocked 12ms
11-29 12:56:41.944: I/Choreographer(2471): Skipped 13425 frames! The application may be doing too much work on its main thread.
kann man da was rausholen? eventuell habe ich mir gedacht, dass man das feld images nacheinander und nicht random ausgibt.
danke im voraus