Programme auf Geschwindigkeit optimieren

14. Mai 2018 - Lesezeit: 3 Minuten

Hier einige Tipps, um sein Programm auf Geschwindigkeit zu optimieren. Um sein Programm auf Geschwindigkeit einzustellen, gibt es einige wichtige Grundsätze:

  • Sowenig Schritte wie möglich ausführen
  • Aufgaben so Effektiv wie möglich gestalten

Weiterlesen


Lösung zu Problemen mit Lazarus und ProLaza

13. Mai 2018 - Lesezeit: 3 Minuten

Inhaltsverzeichnis

  • Probleme mit ProLaza
  • ProLaza unter Lazarus IDE – Symbol PROFILE definieren

Probleme mit ProLaza - Fehlermeldungen

Es gibt zwei Probleme die in Verbindung mit ProLaza auftauchen können.

1. Das Programm (Konsolenanwendung) compiliert nach dem Instrumentieren nicht mehr und hängt sich beim Punkt „Linker ...exe“ kommentarlos auf.

ODER

2. Es tauchen unzählige Errors auf mit der Meldung „undefined Symbol WS...“.

 

Weiterlesen


Lösung zu Fritz 11 Fehlermeldung

12. Mai 2018 - Lesezeit: 4 Minuten

In diesen Artikel geht es um die Fritz 11 Software von Chessbase. Dieser Fehler oder sagen wir Verhalten, kommt aber auch mit anderen Produkten die die GUI von Chessbase nutzen wie z.B. Shredder in einer belieben Version oder auch ältere Fritz Versionen ab 5.0!


Schachliebhaber haben verschiedene Engine’s. Und ab und zu macht man ein Engine Turnier.
Und wem ist diese Fehlermeldung noch nicht begegnet?

Beschreibung
--------------------------
Fehlermeldung: „X ist nicht definiert“
Wobei X hier für ein Engine Name steht. Mit dem bestätigen der Meldung bricht auch das Turnier wieder ab und die Fortsetzung des Turniers scheint erstmal hoffnungslos beendet zu sein.

Weiterlesen


LazReport und Textfelder

11. Mai 2018 - Lesezeit: 10 Minuten

Inhalt:

  • Text aus dem Skript ins Textfeld
  • Einsatz von mehreren Datenbankfelder im Textfeld
  • Einsatz eigener Variable im Skript eines Textfeldes

Weiterlesen


Lösungsmöglichkeiten Error: Incorrect token followed by „:“ (SQL)

10. Mai 2018 - Lesezeit: 2 Minuten

 

Sprachen: PHP, C++, Delphi,… alles womit man auf SQL Datenbanken zugreifen kann.

Dieser Artikel gibt einen kleinen Lösungsvorschlag zur Fehlermeldung:

„ Incorrect token followed by “:“ “ (wobei by auch ein anderes Zeichen sein kann)

Weiterlesen


[Pascal/Delphi] HTML entfernen - Geschwindigkeitstest mit verschiedenen Funktionen

9. Mai 2018 - Lesezeit: 7 Minuten

(Entstammt aus einen Forenbeitrag unter Delphipraxis. Hier die Zusammenfassung:)

 

Da viele Leute auf diese Funktionen hier zurückgreifen, möchte ich noch ergänzen.

Unter dem Geschwindigkeitsaspekt habe ich gemessen:

dwStrips benötigte im Durchschnitt 77,6 ms
StripTags benötigte im Durchschnitt 56,3 ms
CleanHTMLTags benötigte im Durchschnitt 4,6 ms

Für kleinere Anwendungen oder wenigen Anrufen spielt es keine Rolle welche Funktion man nimmt. Möchte man aber größere Texte, öfters Texte durchlaufen lassen sollte man CleanHTMLTags nehmen. dwStrips zieht sich schnell in die Länge.
 

Weiterlesen


[Pascal/Delphi] Fehlersuche bei steigenden Arbeitsspeicher Run Time Error 223

8. Mai 2018 - Lesezeit: ~1 Minute

Mit StringList wird bei jedem .add etwas in den Speicher geschrieben. Mit .free gibt man den Speicher wieder frei.

ABER wenn der Arbeitsspeicher trotzdem weiter ansteigt, hat man entweder ein .free vergessen oder etwas übersehen.

Wenn ein .free in einer Funktion gemacht wurde, zuvor aber eine Bedingung gemacht wurde z. B:

if (x = y) then exit;

Und das .free danach niemals aufgerufen wird... steigt der Speicher an. Besonders dramatisch wird soetwas, wenn man solch eine Funktion in einer Schleife durchlaufen lässt. Weil dann können schnell aus wenigen KB mehrere hundert MB werden.

Deshalb:

Bei .create's nach .free's suchen und zusätzlich nach vorzeitigen "exit" prüfen evtl. auch nach "break"/"continue" u. ä. !!

Bei dynamischen Arrays kann ich mir ein ganz ähnliches Problem vorstellen.

Wenn man das richtig gemacht hat, durfte das Programm je nach Ablauf keinen dauerhaft steigenden Arbeitsspeicher verursachen, wobei Schwankungen nach oben und unten (!) möglich sind.

Sinnvoll scheint hier auch die konstante Anwendung von

try and finally zu sein, um dieses Problem zu vermeiden (im finally Bereich dann ein x.free.).


Lazarus mit Packages erneut installieren

7. Mai 2018 - Lesezeit: ~1 Minute

(Dieser Artikel ist eine Zusammenfassung eines meiner Beiträge aus einem Internetforum)

Wie man eine bestehende Lazarus Packages auf einen neuen Rechner überträgt (oder erneut aufspielen möchte); Ohne die nervenaufreibende einzelne Installation der Packages.

Beschrieben für Win 7:

- Zuerst natürlich den normalen Lazarus Ordner mit IDE usw. auf die neue Platte oder Laufwerk kopieren.

- Den alten Ordner primary config path (hier zu finden C:\Users\USERNAME\AppData\Local\lazarus) auf Laufwerk C habe ich gefunden und auf den neuen kopiert (am besten selbst per Hand anlegen, falls nicht vorhanden. Wurde Lazarus zuvor mal gestartet, erstellt Lazarus den Ordner).

- Die Pfade habe ich mit lazarus.exe -setup geändert.

- Und danach im fpc Verzeichnis noch die Pfade in der fpc.cfg auf den neuen Laufwerksbuchstaben geändert. (Tipp: In Notepad mit Suchen & Ersetzen arbeiten! Backup von der Datei jedoch vorher machen für den Fall der Fälle)

Danach Lazarus samt aller Packages starten und das Projekt erfolgreich compilieren.