PDA

Vollständige Version anzeigen : CPU Auslastung


nesti
01.07.2011, 10:46
Habe ein sehr eigentümliches Problem:

Wenn ich meine Access DB auf gewissen Rechnern starte, steigt mir bei einigen Formularen die CPU Last auf 100 bzw. bei Dual Core CPUs auf 50 %.

Die Testumgebungen die ich jetzt im Büro habe sind alle mit WInXP ausgestattet, 2 x Office XP Dev, einmal XP Runtime. Auf einem der Rechner mit XP Dev tritt der Fehler auf.

Interessant ist, wenn die die DB auf dem Rechner neu "komprimiere und repariere" und dann die .mde dort erstelle, läuft das ganze einwandfrei, am "Runtime" Rechner habe ich den Fehler gar nicht.

Noch interessanter, wenn ich auf dem Rechner den Fehler erzeuge, und dann zb. das Access Optionen Fenster zusätzlich aufmache, fällt die CPU Last wieder auf nahezu 0.

Es wird jedoch kein Code ausgeführt, sprich ich kann nicht unterbrechen, das einzige was mir noch auffällt dass die Anzeige "Berechnung läuft" relativ lang bleibt, jedoch auch nachher die CPU Last nicht fällt.

Habe das jetzt bei ein paar Kunden durchgecheckt, ich würde vorsichtig abschätzen, dass der Fehler bei rund jedem 5ten Rechner auftritt.

Kann das sein, dass der Kompilierungsvorgang in irgendeiner Form CPU abhängig ist, sobald die PCs ähnlich meinem Core i3 sind, habe ich den Effekt nicht, speziell auf alten Rechnern aber auch Notebooks (der PC auf welchen da Problem bei mir im Büro auftritt ist ein Notebook) tritt der Fehler auf.

Mich macht die Sache etwas nervös, da ich nicht weiss, welche Folgeerscheinungen dass das ganze hat, auffälig ist, dass wenn ich am Notebook im Entwurf etwas ändern will, dass man merkt dass Access "hängt", der normale Betrieb läuft auch mit hoher CPU Last anscheinend fehlerfrei und man merkt auch nichts betreffend Performance Einbusse, ohne zu wissen auf wievielen der rund 250 PC's meiner Kunden der Fehler wirklich auftritt habe ich noch keine einzige Rückmeldung bekommen, dass etwas nicht funktioniert.

Vielleicht kann mir jemand einen Tipp geben,

mfg Nesti

PS.: meine Rechner sind auf aktuellem Update Stand

Steffen0815
01.07.2011, 11:53
Hallo,
nach meinen Erfahrungen ist diese CPU-Auslastung normal.

nesti
01.07.2011, 12:22
Entwickelst du mit Access 97?

Da ist das angeblich wirklich so:

http://support.microsoft.com/kb/160819

Kann mir nicht vorstellen, dass das normal ist, sonst müsste es bei jedem Rechner so sein.

KGunder
01.07.2011, 12:31
Das sind die kleinen Überraschungen, die Access für uns bereithält ;-)
Also, ich sehe den Effekt bei meiner Applikation auch hin und iwder mal. Ich vermute, daß Access hier beim Timing der Aktualisierung des Formulars etwas ins stolpern kommt.
Ein DCR Zyklus hilft hier (meistens?)

DCR = Decompile, Compact, Repair

nesti
01.07.2011, 13:06
Alles probiert, ich kann auf meinem Entwicklungsrechner machen was ich will, hilft nur wenn ich auf dem Rechner komprimiere / .mde Datei erstelle, auf dem sie ausgeführt wird.

Hilft mir jedoch nicht weiter, da sich meine Kunden Updates (fertige .mde) teilweise von meiner Homepage laden.

sivi
01.07.2011, 19:25
Hallo Nesti,

hatte ein ähnliches Problem, allerdings nur unter Windows 7 mit 64 Bit!
Wenn man Access im Kompatibilitätsmodus (XP) startet, war das mit der CPU
Auslastung wieder ganz normal.
Versuchs mal und gib bitte Bescheid ob es auch bei Dir nützt.

mfg, Sivi

Steffen0815
01.07.2011, 21:01
Hallo,
ich würde mal nicht so viel Wert auf diese Anzeige legen. AC97 war bestimmt ressourcenschoneneder als AC2007 und die Anzeige war oben.
Entscheidend für mich wäre, ob der Rechner parallel noch sauber läuft, dass heißt ob parallele Prozesse noch ausreichend bedient werden.

nesti
04.07.2011, 08:58
Hallo Sivi,

sind alles WinXP Rechner - kann ich also nicht testen.

lg Nesti

nesti
04.07.2011, 09:18
Hallo Steffn,

im normalen Betrieb kann ich keine Probleme feststellen, auffällig ist dass der Entwurfsmodus sehr stark hängt.

lg

gustavmeyer
04.07.2011, 11:44
Hallo ,

Auf manchen Systemen führt die Anzeige der Statuszeile in Access (2007) zu einer erhöhten CPU-Auslastung.
Die Einstellung, ob die Statuszeile angezeigt wird, ist eine MS Access Einstellung, die für jeden Windowsbenutzer in der Registry gespeichert wird.

Konfigurierbar über die Access-Optionen oder per Registry-Eintrag (nachfolgend für Access 2007)

reg add "HKCU\Software\Microsoft\Office\12.0\Access\Settings" /V "Show Status Bar" /t REG_DWORD /F /D 0

mfg

nesti
04.07.2011, 11:51
Habe ich auch probiert (Habe auch viel gegoogelt)

Übrigens - ich nutze XP (2002).

Habe jetzt mit dem Prozess Exporer (Sysinternals) getestet - es ist definitiv die msaccss.exe die hängt.

nesti
31.08.2011, 22:25
Tut mir leid, dass ich diesen Uralt Beitrag nochmals hervorkrame, aber mir ist heute eine interessante Regelmässigkeit aufgefallen.

Die Erhöhte CPU Auslastung tritt anscheinend nur auf Systemen mit XP Home auf, egal ob Runtime oder Vollversion XP installiert.

Bei meiner aktuellen Entwicklungversion hilft dann auch mittlerweile nurmehr ein -decompile am XP Home Rechner, damit sie stabil läuft.

Durch die erhöhte CPU AUslastung treten dann auch Phänomene auf, dass ich zb. geöffnete Explorer Fenster nicht mehr verschieben kann, weil der Rechner hängt.

Bei älteren Programm Versionen, wo diese Codeteile 1:1 gleich waren, hatte ich diese Probleme nicht, der einzige Unterschied ist:

1. Ich habe damals noch mit Win2k entwickelt - jetzt mit XP Pro (selbe Office Version)
2. neue Verweise:

- Microsoft Internet Controls
- Microsoft Soap Type Library 3.0

Da einer meiner Betatester (es geht um eine Anwendung die österreichweit auf mehreren hundert Rechnern läuft) eine Vollversion von Access 2010 hat, auf einem seiner PC die Access 2010 Runtime installiert, dann funktioniert die selbe .mde wieder fehlerfrei.

Langsam verstehe ich das ganze nicht mehr.

KGunder
08.06.2012, 16:40
Hatte jetzt selber das Problem mit einer Acc2007 Runtime Anwendung.
Der Tip von Gustav hat bei mir geholfen:

Hallo ,

Auf manchen Systemen führt die Anzeige der Statuszeile in Access (2007) zu einer erhöhten CPU-Auslastung.
Die Einstellung, ob die Statuszeile angezeigt wird, ist eine MS Access Einstellung, die für jeden Windowsbenutzer in der Registry gespeichert wird.

Konfigurierbar über die Access-Optionen oder per Registry-Eintrag (nachfolgend für Access 2007)

reg add "HKCU\Software\Microsoft\Office\12.0\Access\Settings" /V "Show Status Bar" /t REG_DWORD /F /D 0

mfg

Lanz Rudolf
09.06.2012, 15:02
Hallo
ich empfele wie KGrunder geschrieben hat:
1. Decompile aber nur mit einer Kopie der MDB
dann 2. Compact, Repair
3. und jetzt die MDE erstellen

die User Arbeiten Nur mit der MDE
wenn sie eine Vollversion von Access haben mit
dem Start Parameter /Runtime !

hallo, habe noch was Vergessen:

wenn DU Deine MDB etwas Aufräunen möchtest was auch immer sehr GUT ist
Empfele ich Dir Von Thomas Möller: den VBA Inspektor
den gibt es Hier zum runterladen :
http://www.team-moeller.de/?Add-Ins:TM_VBA-Inspector

Super Ding :)

Empfele ich allen die den Inspector noch nicht kennen :)

danach natürlich wieder DCR = Decompile, Compact, Repair und MDE erstellen
gibt einiges an Arbeit, das kann jedoch sehr lohnend sein !

nesti
09.06.2012, 19:53
Ich muss sagen, ich sehe das nicht ganz so in meinem Fall (auch wenn /decompile, komprimieren / reparieren, import) sicher bei vielen Problemen helfen kann.

Mein Verdacht mit der Home Version hat sich auch nicht bestätigt, und ich kann bei meinem Frontend den Fehler bei allen Access Versionen ausser 2010 immer wieder nachvollziehen.

Ich habe mich zwar jetzt länger nicht mehr darum gekümmert, aber ich maximiere die erste Maske mit Docmd.Maximize, wenn ich auf meinen Notebook das Fenster verkleinere, und dann eines der betroffenen Formulare öffne tritt der Fehler nicht auf.

Für mich ist das meiner Meinung nach ein Access Bug, den ich vorallem auf 16:9 und 16:10 Schirmen habe.

mfg Mario

Lanz Rudolf
10.06.2012, 05:47
Hallo
und ich kann bei meinem Frontend den Fehler bei allen Access Versionen
das heist Du hast ein FE / BE Lösung ?
was und wo ist den das BE ?
beim BE auch schon DCR ausgeführt ?
und sonstige massnahmen zur Performance verbesserung durchgefürt ?

nesti
12.06.2012, 18:55
Hallo,

hatte leider Stress und vergessen zu antworten.

Bei mir gehts nicht um ein Backend, ich beobachte das ganze bei einer Anwendung die bei rund 80 Kunden auf 1-5 PC's installiert ist.

Das erste Mal aufgefallen ist mir das ganze vor rund einem Jahr.

Wie gesagt, mit Access 2010 oder Runtime 2010 habe ich das Problem vollkommen behoben.

Ich habe keinen wirklichen Regelfall beobachten können, auch Zusammenkürzen von Code hat keie Änderung gebracht.

Auf meinem Notebook tritt der Fehler bei installiertem Access XP zb. auch auf.

Teilweise schaff ichs, wenn ich komprimiere, dass der Fehler weg ist, hängt aber eindeutig mit der Maximierung zusammmen.

Wenn ich einmal etwas mehr Luft habe, werde ich eine kleine Demo machen, damit man das ganze nachvollziehen kann.

nesti
01.09.2012, 17:51
Tut mir leid, dass ich diesen uralten Beitrag nochmals hervorhole.

Interessantes Detail:

Ich benutze seit kurzem 2 Bildschirme, 20 Zoll Auflösung 1600x1200 (der alte) und einen 17" 1280X1024, wenn ich die Anwendung im alten Schirm öffne, funktioniert sie einwandfrei, im neuen tritt am selben Rechner der Fehler mit der CPU Last auf (nicht in allen Formularen wie beschrieben)

Die einzige Abhilfe wie beschrieben ist Access 2010 oder die gleiche Runtime, und alles zusammen scheint mit Docmd.Maximize zusammenzuhängen.

Wenn jemand das selbe Problem hat, kann er sich die Sucherei ersparen... (höchstens es gibt noch eine brauchbare Lösung)

lg Nesti