vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Allgemeine Diskussionen
Prozessorfresser? 
Autor: Heckenpenner
Datum: 30.12.11 11:14

Hallo zusammen,

die Anwendung, an der ich seit einiger Zeit arbeite, nimmt langsam an Komplexizität zu und beim Testen ist mir nun aufgefallen, dass die Anwendung trotz weniger verbundener Clients (Anwendung läuft als Dienst auf einer Windows Büchse und überwacht die Aktivität der verbundenen Clients - nichts Wildes, nur Prüfung ob die IP in DB vorhanden oder nicht, Ping Laufzeit).

Anzahl der verb. Clients schwakt zwischen 7 und 10 Geräten, CPU springt dann gerne von 0 auf 3 hoch und wieder zurück. Da ich gerne die Belastung ein wenig drücken möchte, möchte ich an dieser Stelle fragen, ob es sowas wie eine "Hitliste" der Dinge gibt, die man nicht machen sollte, wenn man seine CPU schonen möchte.

Wie verhällt es sich zb bei Dingen wie:

- Integer zb als String deklariert?
- Häufige MySQL Datenbanken Connects?
- Häufige Zugriffe auf Logfiles (txt Dateien)
- Auslagerung von Aufgabe in versch. Threads anstelle Abarbeitung in einem Thread?
- DB Verbindung öffnen und direkt mehrere Statements absetzen oder eher Verb. öffnen, Statement, schließen, erneut?

[..]

Sollen nur Beispiele sein, was gibt es konkret für Dinge, die man tunlichst vermeiden sollte?

Kann man irgendwie ermitteln, was konrekt die CPU in der Sekunde so beschäftigt?

Danke für ein Feedback

Beitrag wurde zuletzt am 30.12.11 um 11:17:40 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Prozessorfresser? 
Autor: Manfred X
Datum: 30.12.11 12:38

Hallo!

Es gibt Millionen Möglichkeiten, die CPU sinnlos auszulasten.
Mit der Beachtung einfacher Faustregeln kann man das häufig nicht
vermeiden. Meistens liegt es an der Verwendung ineffizienter Algorithmen,
einem ungünstigen Programmaufbau o.ä.

(Implizite) Datentyp-Konvertierung macht sich nur bemerkbar, wenn sie
in "langen" Schleifen mit sehr großer Häufigkeit ausgeführt wird.

Beim Threading kommt es darauf an, dass die Threads sich nicht gegenseitig
blockieren (Warteschleifen) - falls erforderlich muss die Synchronisation
stimmen. Ein SingleThread kann "langsamer" sein, als bei Auslagerung
rechenzeit-intensiver Aufgaben in einen Low-Priority-Background-Thread.

Bei Datenbanken kommt es darauf an, immer die "richtigen" Daten zu laden,
danach im Speicher zu arbeiten und häufige Updates der Datenbank oder
"Nachlader" zu vermeiden.

Usw.

MfG
Manfred

Beitrag wurde zuletzt am 30.12.11 um 12:40:08 editiert.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel