![]() |
syncOjs.TEvent extrem langsam
Hallo,
heute ist mir folgendes passiert: In meiner Anwendung habe ich ein 'klassisches' Eventszenario mit einem Thread mit waitforOject und einem Autoresetevent, der relativ oft (ca alle 10ms) aufgerufen wird. Bisher habe ich das über die Windows API (CreateEvent, SetEvent etc.) gelöst. Heute habe ich, im Zuge einer Fehlersuche, den Event durch syncOjs.TEvent ersetzt. Dabei hat sich die CPU Load, den der Taskmanager anzeigt, unter win10/64 (Delphi: 10.3 Rio) um ca den Faktor 3 erhöht :? Das ganze konnte ich wirklich an diesem Umbau festmachen. Jetzt frage ich mich, ob das wirklich so ist, und ob auch andere Syncobjekte wie TMutex oder TCriticalsection betroffen sind. Tomy |
AW: syncOjs.TEvent extrem langsam
TEvent ist eine direkte Kapselung der Event-API. Der Unterschied könnte im WaitFor-Aufruf liegen. TEvent kann man mit zwei verschiedenen Warteroutinen verwenden:
CoWaitForMultipleHandles (UseComWait = True) und WaitForMultipleObjectsEx (UseComWait = False) Ich rate dir daher das WaitFor mit der vorher bei dir verwendeten Implementierung zu vergleichen. |
AW: syncOjs.TEvent extrem langsam
Hi,
Also ich habe einfach if myEvent.waitFor(XXX) = wrSignaled verwendet, halt analog zu dem If ( WaitForSingleObject(myEventHandle, XXX) = wait_object_0 ) das ich vorher hatte. |
AW: syncOjs.TEvent extrem langsam
Und mit welchen Parametern erzeugst du TEvent?
|
AW: syncOjs.TEvent extrem langsam
Code:
Nachdem es bei
myEvent := syncObjs.TEvent.Create(false);
Code:
was analog zum bisherigen
myEvent := syncObjs.TEvent.Create(nil, false, false, nil);
Code:
gewesen wäre, eine Fehlermeldung des Compilers gegeben hatte.
myEventHandle := CreateEvent(nil, false, false, nil);
|
AW: syncOjs.TEvent extrem langsam
Zitat:
Delphi-Quellcode:
constructor TEvent.Create(UseCOMWait: Boolean);
begin Create(nil, True, False, '', UseCOMWait); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz