Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   CPU Auslastung bei 10% und bei XP Home bei 70% (https://www.delphipraxis.net/150889-cpu-auslastung-bei-10-und-bei-xp-home-bei-70-a.html)

Bernhard Geyer 30. Apr 2010 10:26

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
Zitat:

Zitat von Jackie1983
Zitat:

Zitat von divBy0
Ein Atom N270 ist glaube ich Single-Core. Also nur 1x 1.6 GHz.

Steht auch so bei Wikipedia, aber der Computer sagt mir da was anderes :?

Der N270 hat Hyperthreading, also einen "virtuellen" Kern.

blackfin 30. Apr 2010 11:07

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
Vielleicht solltest du, um das Problem zu lösen, einfach das Konzept der Abfragen etwas abändern.
Wie hoika schon bemerkt hat, ist es bestimmt in den meisten Fällen nicht notwendig, alle paar Sekunden die kompletten Daten zweier gejointer Tabellen zu holen, um zu prüfen, ob eine neue Aufgabe ansteht.

Ich habe so etwas Ähnliches auch schon gemacht und gehe dabei eigentlich meist so vor:

1) Wenn eine neue Aufgabe eingefügt wird, wird für das entsprechende "device" einfach nur ein boolsches Flag in einer Tabelle auf "1" gesetzt.
(Beispiel: Feld "task_available" in einer Tabelle Namens "tasks" als Boolean-Type)

2) Dieses Flag (und zwar nur dieses) wird vom Client alle paar Sekunden abgefragt:
('SELECT task_available FROM tasks WHERE device_id='+MY_DEVICE_ID)

3) Ist das Flag "1", holt sich der Client die relevanten Daten (in deinem Fall die gejointen Tables) und setzt das Flag wieder auf "0".

Somit ist der "Check-Aufwand" minimal und die CPU-Auslastung dürfte nichtmal zu spüren sein.

Vielleicht bringt dir das ja was :)

grüssle,

Fin

franktron 30. Apr 2010 11:07

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
Wenn du die CPU last senken willst installiere LAMP da MySQL unter Linux weniger last erzeugt.

Jackie1983 30. Apr 2010 11:19

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
@blackfin, werde ich mir mal ein paar gedanken zu machen. Aber so kann ich das eigentlich nicht machen, weil die Jobs immer gleich bleiben und nur alle x Sekunden abgearbeitet werden.

@franktron, habe aber kein Linux.

guinnes 30. Apr 2010 11:22

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
Ich spendiere bei sowas den Tabellen einen Zeitstempel. Mit Select Max(Stempel) kann ich erst mal abfragen, ob überhaupt was getan werden muß

Jackie1983 30. Apr 2010 11:56

Re: CPU Auslastung bei 10% und bei XP Home bei 70%
 
Habe ja einen Zeitstempel.
40297,5131740972
und frage den so ab
Delphi-Quellcode:
        sql := 'SELECT check_id, check_device_id FROM tabelle '+
               'WHERE check_start_next < '''+FloatToStr(now)+''''+
               'GROUP BY check_device_id';
Habe meine Sourcen jetzt ein wenig angepast.
Mit den Tipps oben und habe die Sourcen ein wenig optimiert.

Jetzt liegt die Auslastung bei 8% - 30%.
Und wenn es was zu tun gibt bei ca. 60%.

Aber ich konnte eine Aufgabe von 4 schon mal verbessern.
Hier auf den schnellen Rechner habe ich das ganze wohl nicht so mitbekommen :D.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz