Zeitproblem Post/Refresh erster Datensatz

Für Themen zu Datenbanken und Zugriff auf diese. Auch für Datenbankkomponenten.
EgonHugeist
Beiträge: 93
Registriert: Di 17. Apr 2012, 22:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von EgonHugeist »

Double-Post

habe noch 2 nachträgliche cross-compilation fixes für 7.3 hochgeladen. R3763 /Testing-7.3 (SVN)
ZeosDevTeam

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: Zeitproblem Post/Refresh erster Datensatz

Beitrag von mse »

EgonHugeist hat geschrieben:Bestes Beispiel an den Haaren herbeigezogen:

Code: Alles auswählen

 
procedure TestUnicodePerformance(P: PWideChar);
begin
  while P^ <> #0 do begin
    Assert((P^ = 'a') or (p^ = 'b'))
    Inc(P);
  end;
end;
 



Code: Alles auswählen

 
procedure TestUnicodePerformance(P: PWideChar);
begin
  while P^ <> #0 do begin
    Assert((P^ = widechar('a')) or (p^ = widechar('b')))
    Inc(P);
  end;
end;
 

sollte auch gehen. Es sei denn die "Codepage aware Ansistring" machen einen Strich durch die Rechnung...

EgonHugeist
Beiträge: 93
Registriert: Di 17. Apr 2012, 22:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von EgonHugeist »

Hallo Martin,

wir rutschen ab vom Thema. Aber zu deinem Post ... NEIN sobald du einen P^ compare machst, ob WideChar gecasted oder nicht .... dreht der FPC die Logik von Delphi um. Wo in meinem Bsp ist eine implizite Umwandlung? Die Chars, ob byte oder word sind äquivalent.
Delphi schaut beim Compilieren nach den gültigen WORD values zum Vergleichen, FPC macht das zur Laufzeit und nicht nur einmal, sondern in jeder loop!

War auch nur ein simples Bsp.

Ich will mich darüber nicht ausk...en, sondern eigentlich nur die Schwierigkeiten klar machen performanten "nicht normal" code für Alle IDE's zu schreiben -> und dabei mit defines sparen, wo's geht.
Wo beide IDE's ihre performance Tücken haben:

function myfastdosomething(P: PAnsiChar): Integer;
begin
do something
end;

nun mach nen Call:
Result := myfastdosomething(PAnsiChar(MyString));
vs.
Result := myfastdosomething(Pointer(MyString));

mach dad mal in einer Loop x1.000.000 und vergleiche....
Könnte mitlerweile ein ganzes Kapitel schreiben über How to write FastButUgly-Code :)

@Jedi weitere fixes sind hochgeladen
ZeosDevTeam

EgonHugeist
Beiträge: 93
Registriert: Di 17. Apr 2012, 22:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von EgonHugeist »

@Jedi

eine Woche rum ... kein Feedback trotz sofortiger Hilfe. Schön, wenn man geholfen bekommt, oder?

Darf man fragen, ob das ?Problem? noch existent ist?
ZeosDevTeam

Jedi
Beiträge: 25
Registriert: Mi 26. Nov 2014, 09:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von Jedi »

@EgonHugeist
Entschuldigung das ich mich noch nicht wieder gemeldet habe!
Ob das Zeitproblem gelöst ist, kann ich noch nicht sagen. Ich verwende Lazarus auf 2 Rechnern. 1 x produktiv und 1 x als Testrechner.
Der "Fehler" mit dem MEMO-Eintrag ist auf dem Testrechner nach Aktualisierung auf 7.2 verschwunden. Zum Zeitproblem kann ich noch nichts sagen, da
ich habe das betroffene Programm noch nicht geändert habe. Ich bin im Moment gerade bei der Datenerfassung (Jahresabschluss)
und will mir da keinen Fehler leisten. Sobald der Jahresabschluss beendet ist werde ich auf 7.2 umstellen und dann berichten.

MfG
Jedi

EgonHugeist
Beiträge: 93
Registriert: Di 17. Apr 2012, 22:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von EgonHugeist »

Nochmal es ist KEIN Fehler mit dem Memo, vielmehr ist es ein Fehler, wenn es kein Memo-Field ist, da Zeos möglicherweise Daten, welche du erwartest rechts abschneidet.

Aber danke fürs Feedback.. bis später.
ZeosDevTeam

Jedi
Beiträge: 25
Registriert: Mi 26. Nov 2014, 09:41

Re: Zeitproblem Post/Refresh erster Datensatz

Beitrag von Jedi »

Deshalb hatte ich "Fehler" in Anführungszeichen gesetzt.

MfG
Jedi

Antworten