Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Multicore macht Timer langsam?
norman2306 - Fr 05.09.08 16:52
Titel: Multicore macht Timer langsam?
Servus!
Wie der Titel schon sagt, habe ich ein Problem mit Timern (und auch Schleifen) bei einem Multicore-PC. Der Timer feuert plötzlich nur noch alle 100ms (auch im Echtzeit-Modus) wobei die Prozessorauslastung bei 10% liegt. Auf einem alten Dell läuft das Program einwandfrei, das Tick-Ereignis wird rund alle 10ms ausgeführt. Auch die While-Do-Anweisung funktioniert aus irgendeinem Grund nicht und feuert auch nur alle 100 ms. Ich habe es auf zwei neueren Dual- bzw. Quadcore-Rechnern getestet und auf zwei älteren Pentium M; beim M läufts, MultiCore nicht. Kennt jemand das Problem und weiß zu helfen? Das wäre echt wunderbar...
lg norman
alias5000 - Fr 05.09.08 17:29
Hi,
ich weiß, dass das jetzt nicht direkt weiterhilft. Aber trotzdem möchte ich erwähnen, dass Windows kein Echtzeitbetriebssystem ist. Timerintervalle ab etwa 50ms sollten sich wohl relativregelmäßig generieren lassen, aber der Wert von 10ms liegt schon, egal bei welchem Windows, unter dem Wert, der als minimaler Durchschnitt des einzelnen TTimers (bzw. Api-Pendant) genannt wird.
Wenn die 10ms kritisch sind, dann solltest du eh überlegen, andere Methoden zu verwenden.
Gibt es auf den Rechnern andere Unterschiede, als die Kernzahl? Welche Frequenzen, welches Windows, wie viele Anwendungen nebenher?
Gruß
alias5000
norman2306 - Fr 05.09.08 17:43
Die Zahl ist nicht kritisch. 65ms ist die kritische Zahl. Ich konnte das Problem inzwischen eingrenzen:
Der Timer generiert ein JavaScript, welches an einen AxWebBrowser per ExecScript gesendet wird. Aus irgendeinem Grund warten die (neuen) Rechner bis das Script komplett ausgeführt wurde (Taktung etwas über 100 ms). Die alten machen einfach unabhängig davon weiter (Taktung etwa 12 ms). Sobald ich ExecScript rausnehme oder nur eine kleine Variable übergebe läuft das Program auf allen Rechnern gleich schnell... naja, ich habe versucht, die Übergabe an den AxBrowser in einen eigenen Thread zu schreiben... Leider ohne Erfolg. Hat vielleicht jemand eine Idee?
Angaben zum Betriebssystem:
Alle samt das Firmen-Einheits XP bei selber Konfigurierung und Software
Unterschiede bestehen ausschließlich in der Hardware und den Treibern.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!