Im Set of die Reihenfolge erkennen (gelöst) Danke

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von mse »

pluto hat geschrieben:Du meinst das +1 macht so viel aus ?
Viel nicht, aber man soll nehmen was man bekommen kann...

Socke
Lazarusforum e. V.
Beiträge: 3178
Registriert: Di 22. Jul 2008, 19:27
OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
CPU-Target: 32bit x86 armhf
Wohnort: Köln
Kontaktdaten:

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von Socke »

mse hat geschrieben:
pluto hat geschrieben:Du meinst das +1 macht so viel aus ?
Viel nicht, aber man soll nehmen was man bekommen kann...
Vor allem wenn man length()-1 verwendet, ergibt das einen unnötigen Overhead, der spätestens bei Arrays mit 100k Elementen einen sichtbaren Effekt hat (wenn auch nur ein paar Milli-/Nanosekunden).

Hab grad mal getestet:
Die Initialisierung eines 2GiB-Arrays (Integer, 4Byte = 536870912 Elemente) mit dem Wert 0 dauert auf meinem System (AMD Athlon X2 QL64, 2,1GHz pro Kern)

Code: Alles auswählen

Length()-1 : 5.20799956284463s
High()     : 2.79900035820901s
unter normalen Anwendungsbedingungen.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von pluto »

Gut zu wissen. Ich verwende immer "Length" z.b. bei Strings. Arrays direkt nutze ich relativ selten sonst meistens nur TObjectList.

Vielleicht sollte das mal in die WissenDB rein, als Tipp.
MFG
Michael Springwald

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von mse »

pluto hat geschrieben:Gut zu wissen. Ich verwende immer "Length" z.b. bei Strings.
Bei strings ist length() schneller...

pluto
Lazarusforum e. V.
Beiträge: 7192
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von pluto »

Du hast doch eben noch was anders behauptet. Ein Stirng ist doch auch ein Array.
MFG
Michael Springwald

mse
Beiträge: 2013
Registriert: Do 16. Okt 2008, 10:22
OS, Lazarus, FPC: Linux,Windows,FreeBSD,(MSEide+MSEgui 4.6,git master FPC 3.0.4,fixes_3_0)
CPU-Target: x86,x64,ARM

Re: Im Set of die Reihenfolge erkennen (gelöst) Danke

Beitrag von mse »

pluto hat geschrieben:Ein Stirng ist doch auch ein Array.

Code: Alles auswählen

TAnsiRec = Packed Record
    Ref,
    Len   : SizeInt;
    First : Char;
  end;
 
   tdynarray = packed record
      refcount : ptrint;
      high : tdynarrayindex;
   end;
Im dynarray ist der "high" Wert abgelegt, im AnsiString der "length" Wert.

Antworten