Lothar: Arraygröße festlegen

Guten Tag.

Kleine Frage: Was ist der Vorteil die Größe eines Arrays vorher festzulegen?

vorher:
   var arrayWert = new Array(anzahlZeilen);
   for(...) {
     arrayWert[i] = ...;
   }

in der Schleife:
   var arrayWert = new Array();
   for(...) {
     arrayWert[i] = ...;
   }

Könnte mir vorstellen, dass es sicherer ist die Größe vorher festzulegen. Welches ist schneller abgearbeitet?

Lothar

  1. Kleine Frage: Was ist der Vorteil die Größe eines Arrays vorher festzulegen?

    in JS, keinen.

    Könnte mir vorstellen, dass es sicherer ist die Größe vorher festzulegen. Welches ist schneller abgearbeitet?

    sicherer ist es nicht, ob es schneller ist weiß ich nicht, kommt halt drauf an wie der Browser das umsetzt, aber ich vermute es dürfte relativ egal sein, also das der Unterschied im Millisekundenbereich liegt.

    Struppi.

    1. Danke vielmals.

    2. Hallo Struppi,

      Kleine Frage: Was ist der Vorteil die Größe eines Arrays vorher festzulegen?

      in JS, keinen.

      Ja? Ist es nicht geschickt(er), schon vorher den benötigten Speicherplatz zu reservieren? In Matlab bringt dies zT erhebliche Geschwindigkeitsvorteile mit sich, auch wenn es dort ebenfalls nicht pflicht ist.

      Mit freundlichem Gruß
      Micha

    3. Hallo,

      Kleine Frage: Was ist der Vorteil die Größe eines Arrays vorher festzulegen?

      in JS, keinen.

      Man könnte natürlich vermuten, dass es effektiver ist, die Göße vorher anzugeben. Dadurch kann gleich ein genügend großer Speicherberich am Stück reserviert werden, während man sonst damit rechnen muss, dass die Array-Elemente im Speicher fragmentiert sind.

      Aber wahrscheinlich enthalten Array-Elemente ohnehin nur Referenzen, so dass es kaum einen oder gar keinen Unterschied macht. Würde mich schon interessieren, wie es wirklich ist. Will das mal jemand nachmessen?

      Gruß, Don P

      1. Man könnte natürlich vermuten, dass es effektiver ist, die Göße vorher anzugeben. Dadurch kann gleich ein genügend großer Speicherberich am Stück reserviert werden, während man sonst damit rechnen muss, dass die Array-Elemente im Speicher fragmentiert sind.

        Aber wahrscheinlich enthalten Array-Elemente ohnehin nur Referenzen, so dass es kaum einen oder gar keinen Unterschied macht. Würde mich schon interessieren, wie es wirklich ist. Will das mal jemand nachmessen?

        Du immer mit deinen Grundsatzfragen ;-)

        Ich kann mir vorstellen, dass es u.U. sowas wie eine verkettete Liste ist und da spielt es kaum eine Rolle, ob du den Speicher der Zeiger vorher reservierst oder nicht.

        Ich stell mir die Umsetzung eines Testes auch etwas schwierig vor, da du in JS nicht wirklich weißt wann Speicher reserverviert und wann frei gegeben wird. Insofern hab ich dazu keine Lust.

        Struppi.