Schlagwort-Archive: Performance

I/O Performancevergleich beim Erzeugen von Log-Dateien (Fortsetzung)

Wie im ersten Teil bereits erwähnt gibt es weitere Punkte die beim Logging zu beachten sind. Ein Problem über welches ich in bereits erwähnten ISAPI Modulen gestolpert bin ist das Thema Multithreading. Die Variante mit der Stringliste hat im Multithreading Betrieb nie einen Fehler produziert obwohl ja theoretisch gleichzeitig mehrere Threads die Log-Datei geladen und wieder geschrieben haben. Gemerkt habe ich es erst als ich gesehen habe das Logeinträge fehlten.
Weiterlesen

I/O Performancevergleich beim Erzeugen von Log-Dateien

Bei der Prüfung einiger meiner Anwendungen die als Windows Dienst oder im IIS als ISAPI laufen habe ich über den Taskmanager festgestellt, dass diese relativ viele Lese- und Schreiboperationen durchführen. Spalte E/A-Bytes (Lesen) und E/A-Bytes (Schreiben). Wobei diese Anwendungen an sich eher wenig von der Festplatte lesen bzw. schreiben sollten. Woher kamen also die vielen I/Os? Weiterlesen

Long start/request times in Internet Explorer and bad code in ISAPIThreadPool.pas

I have created a web site which serves a lot of jpeg images (via <img /> – tags) from one of my web services. The web browser download most of this images simultaneously. In Internet Explorer I had the problem of long waiting times on start/request. See Screenshot. Weiterlesen

StringIsGUID – 3 Möglichkeiten um zu prüfen ob ein String eine GUID ist (und deren Performance)

Um zu prüfen ob ein String die Form einer GUID hat z.B.: {333F79B2-D2A7-4C8F-A037-0F4C1F773796} gibt es die folgenden 3 Möglichkeiten (zumindest haben die meine Kollegen und ich gefunden und getestet):

  1. Prüfung jeder einzelnen Stelle im String auf ein gültiges Zeichen (Nachfolgend: SimpleIsGUID)
  2. RegEx (Nachfolgend: RegExIsGUID)
  3. Nutzung vorhandener WinAPI Funktionen (Nachfolgend: COMIsGUID)

Weiterlesen

Do not use „indent“ while generating XML files

For XML reading and writing I use the component TJvSimpleXML from the JediVCL library. The component has an option sxoAutoIndent for saving the XML content to string/file. This will add blanks to the output XML to generate a file which can be (good) read by humans. Example:

<XML>
  <ITEMS>
    <ITEM1>value1</ITEM1>
    <ITEM2>value2</ITEM2>
    <ITEM3>value3</ITEM3>
  </ITEMS>
</XML>

But the generated file is much larger. I had an input XML without indent which is 42 MB. After processing and saving the size is 127 MB! Just because blanks were added. If You generate files only for machine processing do not use indents. The needed HDD/RAM space is lower and the processing time increase.

Example without indent:

<XML>
<ITEMS>
<ITEM1>value1</ITEM1>
<ITEM2>value2</ITEM2>
<ITEM3>value3</ITEM3>
</ITEMS>
</XML>