Hallo,
wenn Dein Vergleichswert aFloat im Feld aFA vorkommt, wird er den auch finden.
Das versuchte ich zu vermeiden.
Gruß Horst
Die Suche ergab 74 Treffer
- Mo 24. Jun 2024, 14:48
- Forum: Freepascal
- Thema: [Erledigt] Wanted: ClosestNumber / ClosestValue
- Antworten: 11
- Zugriffe: 1039
- Sa 22. Jun 2024, 11:56
- Forum: Freepascal
- Thema: [Erledigt] Wanted: ClosestNumber / ClosestValue
- Antworten: 11
- Zugriffe: 1039
Re: Wanted: ClosestNumber / ClosestValue
Hallo,
ist das nicht einfach?
Einmal die Liste abklappern und mit dem Wert vergleichen und immer den gerade "nächsten" <> Wert speichern.
program findNearest;
type
tValue = Uint32;
tFeld = array of tValue;
function FindNearestIdx(value: TValue;const Feld: tFeld):int32;
var
minIdx,i : Int32 ...
ist das nicht einfach?
Einmal die Liste abklappern und mit dem Wert vergleichen und immer den gerade "nächsten" <> Wert speichern.
program findNearest;
type
tValue = Uint32;
tFeld = array of tValue;
function FindNearestIdx(value: TValue;const Feld: tFeld):int32;
var
minIdx,i : Int32 ...
- Di 15. Nov 2022, 11:40
- Forum: Freepascal
- Thema: Was macht dieser Assembler-Code?
- Antworten: 22
- Zugriffe: 3098
Re: Was macht dieser Assembler-Code?
Hallo,
wenn man die Funktion von kupferstecher mit Ausgabe des Assemblers kompiliert kommt doch schon der gleiche passende Assembler-Code raus.
Reicht da nicht ein simples inline um dann genau so schnell zu sein?
Unter 64-Bit linux fpc -O3 -al -Xs kompiliert:
function rech(i, j: Integer): Integer ...
wenn man die Funktion von kupferstecher mit Ausgabe des Assemblers kompiliert kommt doch schon der gleiche passende Assembler-Code raus.
Reicht da nicht ein simples inline um dann genau so schnell zu sein?
Unter 64-Bit linux fpc -O3 -al -Xs kompiliert:
function rech(i, j: Integer): Integer ...
- Di 29. Okt 2019, 18:55
- Forum: Freepascal
- Thema: Umstellung Delphi auf Lazarus: Assemblercode
- Antworten: 3
- Zugriffe: 1904
Re: Umstellung Delphi auf Lazarus: Assemblercode
Hallo,
das gibt es schon ohne assembler:
Rotiere x um n bits nach links die Bits werden innerhalb von x verschoben, was oben rausfällt wird unten wieder reingeschoben.
https://en.wikipedia.org/wiki/Bitwise_operation#Circular_shift
https://www.freepascal.org/docs-html/3.0.0/rtl/system/index-5.html ...
das gibt es schon ohne assembler:
Rotiere x um n bits nach links die Bits werden innerhalb von x verschoben, was oben rausfällt wird unten wieder reingeschoben.
https://en.wikipedia.org/wiki/Bitwise_operation#Circular_shift
https://www.freepascal.org/docs-html/3.0.0/rtl/system/index-5.html ...
- Do 26. Sep 2019, 07:52
- Forum: Sonstiges
- Thema: Performance Probleme unter Windows 10
- Antworten: 8
- Zugriffe: 2749
Re: Performance Probleme unter Windows 10
Hallo,
wenn ich unter Win10 64-Bit für FreePascal 32-Bit compiliere dauerte es immer eine Ewigkeit, obwohl die ausgegebene Kompilierzeit selbst nur maximal doppelt so lang wie bei 64-bit ist.Eben diese 10 bis 20 Sekunden Bedenkzeit, bevor es überhaupt los geht.Während der Zeit ist ein Prozessorkern ...
wenn ich unter Win10 64-Bit für FreePascal 32-Bit compiliere dauerte es immer eine Ewigkeit, obwohl die ausgegebene Kompilierzeit selbst nur maximal doppelt so lang wie bei 64-bit ist.Eben diese 10 bis 20 Sekunden Bedenkzeit, bevor es überhaupt los geht.Während der Zeit ist ein Prozessorkern ...
- Di 23. Okt 2018, 23:28
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
Re: große JSON Datei
Hallo,
ich habe noch was dran herumgeschraubt, um zu sehen ob die Suche nach Orten in der Umgebung einer Koordinate Sinn machen können.
1 Breitengrad sind ja 110 km .1 Längengrad am Äquätor auch, zu den Polen wird es etwas eng.
Um Berlin sind es schon 330 Ortsangaben.
Anbei das Lazarus Projekt. Es ...
ich habe noch was dran herumgeschraubt, um zu sehen ob die Suche nach Orten in der Umgebung einer Koordinate Sinn machen können.
1 Breitengrad sind ja 110 km .1 Längengrad am Äquätor auch, zu den Polen wird es etwas eng.
Um Berlin sind es schon 330 Ortsangaben.
Anbei das Lazarus Projekt. Es ...
- Mo 22. Okt 2018, 13:53
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
Re: große JSON Datei
Hallo,
ich habe mein Programm wieder verändert und jsonparser wie wp_xyz eingesetzt hat, um einmalig ein File of TCity zu erstellen.
Diese ist schon entsprechend nach Land-> Name-> ID sortiert.
Nach einmaligem Einlesen kann man dann für die Länder ja Start und Endindices speichern.
Aber bei nur 16 ...
ich habe mein Programm wieder verändert und jsonparser wie wp_xyz eingesetzt hat, um einmalig ein File of TCity zu erstellen.
Diese ist schon entsprechend nach Land-> Name-> ID sortiert.
Nach einmaligem Einlesen kann man dann für die Länder ja Start und Endindices speichern.
Aber bei nur 16 ...
- Mo 22. Okt 2018, 13:12
- Forum: Freepascal
- Thema: Time Funktion, weche Zeiteinheit?
- Antworten: 28
- Zugriffe: 12350
Re: Time Funktion, weche Zeiteinheit?
Hallo,
zur Verdeutlichung.
Der Nachkommateil ist der Anteil vom Tag.
Wenn Du die Sekunden haben willst dann x 86400 rechnen
T0 := time;
sleep(1010);
dt:= time-T0;
writeln('Es sind ',dt:10:8,' Tage vergangen');
writeln('Es sind ',dt*24:10:8,' Stunden vergangen');
writeln('Es sind ',dt*24*60:10:8 ...
zur Verdeutlichung.
Der Nachkommateil ist der Anteil vom Tag.
Wenn Du die Sekunden haben willst dann x 86400 rechnen
T0 := time;
sleep(1010);
dt:= time-T0;
writeln('Es sind ',dt:10:8,' Tage vergangen');
writeln('Es sind ',dt*24:10:8,' Stunden vergangen');
writeln('Es sind ',dt*24*60:10:8 ...
- Sa 20. Okt 2018, 18:23
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
Re: große JSON Datei
Hallo,
ich würde die city.list in ein file of TCity umwandeln.
Das ist nur selten nötig und damit ist sie leichter handhabbar.
Steffen Polster hatte vor Jahren ein OpenSource-Programm dafür komponiert:
https://www.entwickler-ecke.de/viewtopic.php?t=111904
Aber die wollen jetzt einen persönlichen ...
ich würde die city.list in ein file of TCity umwandeln.
Das ist nur selten nötig und damit ist sie leichter handhabbar.
Steffen Polster hatte vor Jahren ein OpenSource-Programm dafür komponiert:
https://www.entwickler-ecke.de/viewtopic.php?t=111904
Aber die wollen jetzt einen persönlichen ...
- Sa 20. Okt 2018, 13:50
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
Re: große JSON Datei
Hallo,
ich habe mal die json Datei pro Datum zu einem Einzeiler gemacht.
[
{"id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}},
{"id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}},
{"id":1283378,"name":"Gorkhā","country":"NP ...
ich habe mal die json Datei pro Datum zu einem Einzeiler gemacht.
[
{"id":707860,"name":"Hurzuf","country":"UA","coord":{"lon":34.283333,"lat":44.549999}},
{"id":519188,"name":"Novinki","country":"RU","coord":{"lon":37.666668,"lat":55.683334}},
{"id":1283378,"name":"Gorkhā","country":"NP ...
- Sa 20. Okt 2018, 11:03
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
Re: große JSON Datei
Hallo,
ich habe mal ein minimales Programm aus dem Schnipsel oben geschrieben.
uses
sysutils,classes,fpjson,jsonparser;
var
FS : TFileStream;
SL : TStringList;
J : TJSONData;
T1,T0 :int64;
i : NativeInt;
begin
T0 := GetTickCount64;
FS := TFileStream.Create('city.list.json',fmOpenRead ...
ich habe mal ein minimales Programm aus dem Schnipsel oben geschrieben.
uses
sysutils,classes,fpjson,jsonparser;
var
FS : TFileStream;
SL : TStringList;
J : TJSONData;
T1,T0 :int64;
i : NativeInt;
begin
T0 := GetTickCount64;
FS := TFileStream.Create('city.list.json',fmOpenRead ...
- Sa 20. Okt 2018, 09:15
- Forum: Sonstiges
- Thema: [Gelöst] große JSON Datei
- Antworten: 17
- Zugriffe: 11272
- Mo 8. Okt 2018, 13:43
- Forum: Programmierung
- Thema: Gravierende Laufzeitunterschiede
- Antworten: 11
- Zugriffe: 7782
Re: Gravierende Laufzeitunterschiede
Hallo,
besonders bei 32-Bit bekommt man die geringe Zahl an Registern zu spüren.Das auslagern in kleine Funktionen bringt erheblich was und es sollte auch vergleichbarer werden, egal wo man die Funktion im Quelltext benutzt.
program p;
uses
sysutils;
const
IMAX = 250000000;
var
x: double ...
besonders bei 32-Bit bekommt man die geringe Zahl an Registern zu spüren.Das auslagern in kleine Funktionen bringt erheblich was und es sollte auch vergleichbarer werden, egal wo man die Funktion im Quelltext benutzt.
program p;
uses
sysutils;
const
IMAX = 250000000;
var
x: double ...
- Do 27. Sep 2018, 13:49
- Forum: Programmierung
- Thema: Gravierende Laufzeitunterschiede
- Antworten: 11
- Zugriffe: 7782
Re: Gravierende Laufzeitunterschiede
Hallo,
wie der CPu Bench zeigt, liegt die single-thread performance bei 1:8 also nicht so weit weg von 1:10 hier.
Man kann aber das Programm ein wenig umstellen, um ohne IF's und n als double auszukommen.
Vielleicht hilft das ja ein wenig.
program p;
uses
sysutils;
var
x : double;
i ...
wie der CPu Bench zeigt, liegt die single-thread performance bei 1:8 also nicht so weit weg von 1:10 hier.
Man kann aber das Programm ein wenig umstellen, um ohne IF's und n als double auszukommen.
Vielleicht hilft das ja ein wenig.
program p;
uses
sysutils;
var
x : double;
i ...
- Mi 12. Sep 2018, 13:24
- Forum: Komponenten und Packages
- Thema: [gelöst]Gibt es in FPC eine IntegerList?
- Antworten: 29
- Zugriffe: 12938
Re: Gibt es in FPC eine IntegerList?
Hallo,
ich habe einen Ryzen 5 1600 Rechner und das Programm mal für 64-Bit unter Linux mit FPC 3.0.4 compiliert.
Bei mir bleibt Subtraktion schneller.
Original:
{$Codepage UTF8}
{$mode objfpc}{$H+}
{$CODEALIGN proc=32,loop=8}
program Project1;
und fpc so aufgerufen:
fpc -O3 -Xs -al ...
ich habe einen Ryzen 5 1600 Rechner und das Programm mal für 64-Bit unter Linux mit FPC 3.0.4 compiliert.
Bei mir bleibt Subtraktion schneller.
Original:
{$Codepage UTF8}
{$mode objfpc}{$H+}
{$CODEALIGN proc=32,loop=8}
program Project1;
und fpc so aufgerufen:
fpc -O3 -Xs -al ...