Ressourcengrenzen und Leistungsoptimierung für Office-Add-InsResource limits and performance optimization for Office Add-ins

Um für Ihre Benutzer eine höchstmögliche Benutzerfreundlichkeit zu gewährleisten, müssen Sie sicherstellen, dass Ihre Office-Add-In im Rahmen bestimmter Grenzwerte für die Auslastung der CPU-Kerne und des Arbeitsspeichers, für die Zuverlässigkeit und im Fall von Outlook-Add-Ins für die Antwortzeit für die Überprüfung regulärer Ausdrücke funktioniert. Diese Grenzwerte für die Nutzung von Laufzeitressourcen gelten für Add-Ins, die auf Office-Clients unter Windows und OS X ausgeführt werden, jedoch nicht in Mobilgeräte-Apps oder in einem Browser.To create the best experience for your users, ensure that your Office Add-in performs within specific limits for CPU core and memory usage, reliability, and, for Outlook add-ins, the response time for evaluating regular expressions. These run-time resource usage limits apply to add-ins running on Office clients for Windows and OS X, but not Office Online, Outlook Web App, or OWA for Devices.

Sie können außerdem die Leistung Ihrer Add-Ins auf Desktop- und mobilen Geräten verbessern, indem Sie die Verwendung der Ressourcen in Ihrem Add-In-Design und der Implementierung optimieren.You can also optimize the performance of your add-ins on desktop and mobile devices by optimizing the use of resources in your add-in design and implementation.

Grenzwerte für die Ressourcennutzung für Add-InsResource usage limits for add-ins

Durch Grenzwerte für die Nutzung von Laufzeitressourcenwenden alle Typen von Office-Add-Ins an. Diese Grenzwerte gewährleisten ausreichend Leistung für die Benutzer und tragen außerdem dazu bei, das Risikopotenzial von Denial-of-Service-Angriffen zu verringern. Testen Sie Ihre Office-Add-In auf dem Ziel-Host mit vielen verschiedenen Daten, messen Sie die Leistung im Hinblick auf die folgenden Runtime-Grenzwerte und Nutzungsbegrenzungen.Run-time resource usage limits apply to all types of Office Add-ins. These limits help ensure performance for your users and mitigate denial-of-service attacks. Be sure to test your Office Add-in on your target host application by using a range of possible data, and measure its performance against the following run-time usage limits:

  • CPU-Kern-Auslastung – Ein Grenzwert für die Auslastung eines einzelnen CPU-Kerns in Höhe von 90 % (drei Mal in 5-Sekunden-Standardintervallen beobachtet).CPU core usage - A single CPU core usage threshold of 90%, observed three times in default 5-second intervals.

    Das standardmäßige Intervall für einen Host-Rich-Client zur Überprüfung der CPU-Kernauslastung ist alle 5 Sekunden. Wenn der Hostclient erkennt, dass die CPU-Kernauslastung eines Add-Ins über dem Schwellenwert liegt, wird eine Meldung angezeigt, in der der Benutzer gefragt wird, ob er das Ausführen des Add-Ins fortsetzen möchte. Wenn der Benutzer entscheidet, den Vorgang fortzusetzen, wird der Benutzer während dieser Bearbeitungssitzung nicht erneut vom Hostclient gefragt. Administratoren möchten vielleicht den Registrierungsschlüssel AlertInterval verwenden, um den Schwellenwert zu erhöhen, damit die Anzeige dieser Warnmeldung reduziert wird, wenn Benutzer CPU-intensive Add-Ins ausführen.The default interval for a host rich client to check CPU core usage is every 5 seconds. If the host client detects the CPU core usage of an add-in is above the threshold value, it displays a message asking if the user wants to continue running the add-in. If the user chooses to continue, the host client does not ask the user again during that edit session. Administrators might want to use the AlertInterval registry key to raise the threshold to reduce the display of this warning message if users run CPU-intensive add-ins.

  • Arbeitsspeicherauslastung – Ein Grenzwert für die standardmäßige Arbeitsspeicherauslastung, der basierend auf dem verfügbaren physischen Arbeitsspeicher des Geräts dynamisch festgelegt wird.Memory usage - A default memory usage threshold that is dynamically determined based on the available physical memory of the device.

    Wenn ein Host-Rich-Client erkennt, dass die physische Arbeitsspeicherauslastung auf einem Gerät 80 % des verfügbaren Arbeitsspeichers überschreitet, beginnt der Client standardmäßig, die Speicherauslastung des Add-Ins zu überwachen, auf Dokumentebene für Inhalts- und Aufgabenbereich-Add-Ins und auf Postfachebene für Outlook-Add-Ins. Der Client warnt den Benutzer mit einem Standardintervall von 5 Sekunden, wenn die physische Arbeitsspeicherauslastung für eine Reihe von Add-Ins auf Dokument- oder Postfachebene 50 % überschreitet. Diese Grenze für die Arbeitsspeicherauslastung verwendet physischen und nicht virtuellen Arbeitsspeicher, um die Leistung auf Geräten mit begrenztem RAM sicherzustellen, z. B. Tablets. Administratoren können diese dynamische Einstellung durch einen expliziten Grenzwert mithilfe des Windows-Registrierungsschlüssels MemoryAlertThreshold als globale Einstellung überschreiben oder das Warnungsintervall mithilfe des Schlüssels AlertInterval als globale Einstellung anpassen.By default, when a host rich client detects that physical memory usage on a device exceeds 80% of the available memory, the client starts monitoring the add-in's memory usage, at a document level for content and task pane add-ins, and at a mailbox level for Outlook add-ins. At a default interval of 5 seconds, the client warns the user if physical memory usage for a set of add-ins at the document or mailbox level exceeds 50%. This memory usage limit uses physical rather than virtual memory to ensure performance on devices with limited RAM, such as tablets. Administrators can override this dynamic setting with an explicit limit by using the MemoryAlertThreshold Windows registry key as a global setting, ir adjust the alert interval by using the AlertInterval key as a global setting.

  • Absturztoleranz – Ein standardmäßiger Grenzwert von 4 Abstürzen für ein Add-In.Crash tolerance - A default limit of four crashes for an add-in.

    Administratoren können den Schwellenwert für Abstürze mithilfe des Registrierungsschlüssels RestartManagerRetryLimit anpassen.Administrators can adjust the threshold for crashes by using the RestartManagerRetryLimit registry key.

  • Nicht reagierende Anwendungen – Grenzwert für den Zeitraum, in der ein Add-In nicht reagiert, von 5 Sekunden.Application blocking - Prolonged unresponsiveness threshold of 5 seconds for an add-in.

    Dies wirkt sich auf die Benutzererfahrungen des Add-Ins und der Hostanwendung aus. In diesem Fall startet die Hostanwendung alle aktiven Add-Ins für ein Dokument oder ein Postfach (sofern zutreffend) neu und warnt den Benutzer dahingehend, welches Add-In nicht mehr reagiert. Add-ins können diesen Schwellenwert erreichen, wenn sie beim Ausführen lang laufender Aufgaben nicht regelmäßig eine Verarbeitung erzielen. Es gibt Techniken, um sicherzustellen, dass keine Blockierung auftritt. Administratoren können diesen Schwellenwert nicht überschreiben.This affects the user's experiences of the add-in and the host application. When this occurs, the host application automatically restarts all the active add-ins for a document or mailbox (where applicable), and warns the user as to which add-in became unresponsive. Add-ins can reach this threshold when they do not regularly yield processing while performing long-running tasks. There are techniques to ensure that blocking does not occur. Administrators cannot override this threshold.

Outlook-Add-InsOutlook add-ins

Werden von einem Outlook-Add-In die o. g. Grenzwerte für die Auslastung der CPU-Kerne oder des Arbeitsspeichers bzw. die Toleranzgrenze für Abstürze überschritten, wird das Add-In von Outlook deaktiviert. Im Exchange Admin Center wird der Status der App als deaktiviert angezeigt.If any Outlook add-in exceeds the preceding thresholds for CPU core or memory usage, or tolerance limit for crashes, Outlook disables the add-in. The Exchange Admin Center displays the disabled status of the app.

Hinweis

Obwohl nur Outlook-Rich-Clients und nicht Outlook im Web oder für mobile Geräte die Ressourcenauslastung überwachen, wird, wenn ein Rich-Client ein Outlook-Add-In deaktiviert, dieses Add-In auch für die Verwendung in Outlook im Web und für mobile Geräte deaktiviert.Even though only the Outlook rich clients and not Outlook Web App or OWA for Devices monitor resource usage, if a rich client disables an Outlook add-in, that add-in is also disabled for use in Outlook Web App and OWA for Devices.

Zusätzlich zu den CPU-Kern-, Arbeitsspeicher- und Zuverlässigkeitsregeln sollten Outlook-Add-Ins die folgenden Regeln bei der Aktivierung befolgen:In addition to the CPU core, memory, and reliability rules, Outlook add-ins should observe the following rules on activation:

  • Antwortzeit für reguläre Ausdrücke – Für Outlook gilt ein standardmäßiger Grenzwert von 1.000 Millisekunden für die Überprüfung aller regulären Ausdrücke im Manifest einem Outlook-Add-In. Bei einer Überschreitung des Grenzwerts versucht Outlook die Überprüfung zu einem späteren Zeitpunkt.Regular expressions response time - A default threshold of 1,000 milliseconds for Outlook to evaluate all regular expressions in the manifest of an Outlook add-in. Exceeding the threshold causes Outlook to retry evaluation at a later time.

    Mithilfe einer Gruppenrichtlinie oder einer anwendungsspezifischen Einstellung in der Windows-Registrierung können Administratoren diesen Standardschwellenwert von 1.000 Millisekunden in der Einstellung OutlookActivationAlertThreshold anpassen.Using a group policy or application-specific setting in the Windows registry, administrators can adjust this default threshold value of 1,000 milliseconds in the OutlookActivationAlertThreshold setting.

  • Erneute Überprüfung regulärer Ausdrücke – Für Outlook gilt ein standardmäßiger Grenzwert von drei Versuchen für die erneute Überprüfung aller regulären Ausdrücke in einem Manifest. Schlägt die Überprüfung drei Mal fehl, weil der anwendbare Grenzwert (entweder die Standardeinstellung von 1.000 Millisekunden oder ein durch OutlookActivationAlertThreshold festgelegter Wert, wenn dieser in der Windows-Registrierung vorhanden ist) überschritten wurde, wird das Outlook-Add-In von Outlook deaktiviert. Im Exchange Admin Center wird der Status als deaktiviert angezeigt, und das Add-In wird für die Outlook-Rich-Clients sowie für Outlook im Web und für mobile Geräte deaktiviert.Regular expressions re-evaluation - A default limit of three times for Outlook to reevaluate all the regular expressions in a manifest. If evaluation fails all three times by exceeding the applicable threshold (which is either the default of 1,000 milliseconds or a value specified by OutlookActivationAlertThreshold, if that setting exists in the Windows registry), Outlook disables the Outlook add-in. The Exchange Admin Center displays the disabled status, and the add-in is disabled for use in the Outlook rich clients, Outlook Web App and OWA for Devices.

    Mithilfe einer Gruppenrichtlinie oder einer anwendungsspezifischen Einstellung in der Windows-Registrierung können Administratoren diese Anzahl von Malen anpassen, um die Evaluierung in der Einstellung OutlookActivationAlertThreshold zu wiederholen.Using a group policy or application-specific setting in the Windows registry, administrators can adjust this number of times to retry evaluation in the OutlookActivationManagerRetryLimit setting.

Aufgabenbereich- und Inhalts-Add-InsTask pane and content add-ins

Werden von einem Inhalts-Add-In oder einem Add-In für den Aufgabenbereich die o. g. Grenzwerte für die Auslastung der CPU-Kerne oder des Arbeitsspeichers bzw. die Toleranzgrenze für Abstürze überschritten, wird dem Benutzer von der entsprechenden Hostanwendung eine Warnung angezeigt. Der Benutzer kann daraufhin:If any content or task pane add-in exceeds the preceding thresholds on CPU core or memory usage, or tolerance limit for crashes, the corresponding host application displays a warning for the user. At this point, the user can do one of the following:

  • Das Add-In neu starten.Restart the add-in.
  • Weitere Warnungen hinsichtlich der Überschreitung dieses Grenzwerts unterdrücken. Im Optimalfall löscht der Benutzer das Add-In aus dem Dokument, da eine weitere Verwendung des Add-Ins zusätzliche Leistungs- und Stabilitätsprobleme verursachen kann.Cancel further alerts about exceeding that threshold. Ideally, the user should then delete the add-in from the document; continuing the add-in would risk further performance and stability issues.

Behandeln von Problemen mit der Ressourcennutzung im TelemetrieprotokollVerifying resource usage issues in the Telemetry Log

Office verfügt über ein Telemetrieprotokoll, in dem bestimmte Ereignisse von Office-Lösungen aufgezeichnet werden (Laden, Öffnen, Schließen und Fehler), die auf einem lokalen Computer ausgeführt werden, darunter Ressourcennutzungsprobleme in einer Office-Add-In. Wenn Sie das Telemetrieprotokoll eingerichtet haben, können Sie Excel zum Öffnen des Telemetrieprotokolls vom folgenden Standardspeicherort auf dem lokalen Laufwerk verwenden:Office provides a Telemetry Log that maintains a record of certain events (loading, opening, closing, and errors) of Office solutions running on the local computer, including resource usage issues in an Office Add-in. If you have the Telemetry Log set up, you can use Excel to open the Telemetry Log in the following default location on your local drive:

%Users%\<Current user>\AppData\Local\Microsoft\Office\15.0\Telemetry

Für jedes Ereignis, das vom Telemetrieprotokoll für ein Add-In nachverfolgt wird, wird Folgendes angegeben: Datum/Uhrzeit des Auftretens, Ereignis-ID, Schweregrad, kurzer aussagekräftiger Titel für das Ereignis, Anzeigename und eindeutige ID des Add-Ins sowie die Anwendung, von der das Ereignis protokolliert wurde. Sie können das Telemetrieprotokoll aktualisieren, um die derzeit nachverfolgten Ereignisse anzuzeigen. In der folgenden Tabelle sind einige Beispiele für Outlook-Add-Ins aufgeführt, die im Telemetrie-Protokoll nachverfolgt wurden.For each event that the Telemetry Log tracks for an add-in, there is a date/time of the occurrence, event ID, severity, and short descriptive title for the event, the friendly name and unique ID of the add-in, and the application that logged the event. You can refresh the Telemetry Log to see the current tracked events. The following table shows examples of Outlook add-ins that were tracked in the Telemetry log.

Datum/UhrzeitDate/Time Ereignis-IDEvent ID SchweregradSeverity TitelTitle DateiFile IDID AnwendungApplication
08.10.12 17:57:1010/8/2012 5:57:10 PM 77 Das Add-In-Manifest wurde erfolgreich heruntergeladen.add-in manifest downloaded successfully Who's WhoWho's Who 69cc567c-6737-4c49-88dd-123334943a2269cc567c-6737-4c49-88dd-123334943a22 OutlookOutlook
08.10.12 17:57:0110/8/2012 5:57:01 PM 77 Das Add-In-Manifest wurde erfolgreich heruntergeladen.add-in manifest downloaded successfully LinkedInLinkedIn 333bf46d-7dad-4f2b-8cf4-c19ddc78b723333bf46d-7dad-4f2b-8cf4-c19ddc78b723 OutlookOutlook

In der folgenden Tabelle sind die Ereignisse aufgeführt, die im Telemetrieprotokoll für Office-Add-Ins normalerweise nachverfolgt werden.The following table lists the events that the Telemetry Log tracks for Office Add-ins in general.

Ereignis-IDEvent ID TitelTitle SchweregradSeverity BeschreibungDescription
77 Das Add-In-Manifest wurde erfolgreich heruntergeladen.Add-in manifest downloaded successfully Das Manifest der Office-Add-In wurde von der Hostanwendung erfolgreich geladen und gelesen.The manifest of the Office Add-in was successfully loaded and read by the host application.
88 Das Add-In-Manifest konnte nicht heruntergeladen werden.Add-in manifest did not download KritischCritical Die Hostanwendung konnte die Manifestdatei für die Office-Add-In nicht aus dem SharePoint-Katalog, dem Unternehmenskatalog oder aus AppSource laden.The host application was unable to load the manifest file for the Office Add-in from the SharePoint catalog, corporate catalog, or AppSource.
99 Der Markup-Code des Add-Ins konnte nicht analysiert werden.Add-in markup could not be parsed KritischCritical Die Hostanwendung hat das Office-Add-In-Manifest geladen, konnte jedoch das HTML-Markup der App nicht lesen.The host application loaded the Office Add-in manifest, but could not read the HTML markup of the app.
1010 Die CPU-Nutzung des Add-Ins ist zu hoch.Add-in used too much CPU KritischCritical Die Office-Add-In hat über eine begrenzte Zeitspanne mehr als 90 % der CPU-Ressourcen beansprucht.The Office Add-in used more than 90% of the CPU resources over a finite period of time.
1515 Das Add-In wurde aufgrund eines Timeouts bei der Zeichenfolgensuche deaktiviert.Add-in disabled due to string search time-out Outlook-Add-Ins durchsuchen die Betreffzeile und die Nachricht einer E-Mail, um zu ermitteln, ob sie mithilfe eines regulären Ausdrucks angezeigt werden soll. Das Outlook-Add-In, die in der Spalte File angegeben ist, wurde von Outlook deaktiviert, weil es bei dem Versuch, einen regulären Ausdruck zuzuordnen, mehrfach zu einer Zeitüberschreitung gekommen ist.Outlook add-ins search the subject line and message of an e-mail to determine whether they should be displayed by using a regular expression. The Outlook add-in listed in the File column was disabled by Outlook because it timed out repeatedly while trying to match a regular expression.
1818 Das Add-In wurde erfolgreich geschlossen.Add-in closed successfully Die Hostanwendung konnte die Office-Add-In erfolgreich schließen.The host application was able to close the Office Add-in successfully.
1919 Für das Add-In ist ein Laufzeitfehler aufgetreten, der lokal protokolliert wurde.Add-in encountered runtime error KritischCritical Bei der Office-Add-In ist ein Problem aufgetreten, das zu einem Fehler geführt hat. Weitere Einzelheiten können Sie dem Protokoll der Microsoft Office-Benachrichtigungen entnehmen. Zeigen Sie das Protokoll mit der Windows-Ereignisanzeige auf dem Computer an, auf dem der Fehler aufgetreten ist.The Office Add-in had a problem that caused it to fail. For more details, look at the Microsoft Office Alerts log using the Windows Event Viewer on the computer that encountered the error.
2020 Das Add-In konnte die Lizenzierung nicht überprüfen.Add-in failed to verify licensing KritischCritical Die Lizenzinformationen für die Office-Add-In konnten nicht überprüft werden. Möglicherweise ist die Lizenz abgelaufen. Weitere Einzelheiten können Sie dem Protokoll der Microsoft Office-Benachrichtigungen entnehmen. Zeigen Sie das Protokoll mit der Windows-Ereignisanzeige auf dem Computer an, auf dem der Fehler aufgetreten ist.The licensing information for the Office Add-in could not be verified and may have expired. For more details, look at the Microsoft Office Alerts log using the Windows Event Viewer on the computer that encountered the error.

Weitere Informationen finden Sie unter Deploying Telemetry Dashboard und Problembehandlung für Office-Dateien und benutzerdefinierte Lösungen mit dem Telemetrieprotokoll.For more information, see Deploying Telemetry Dashboard and Troubleshooting Office files and custom solutions with the telemetry log.

Design- und ImplementierungsverfahrenDesign and implementation techniques

Die Grenzwerte für die Auslastung der CPU-Kerne und des Arbeitsspeichers sowie für die Absturztoleranz und die Reaktionsfähigkeit der Benutzeroberfläche gelten zwar nur für Office-Add-Ins, die auf den Rich-Clients ausgeführt werden. Trotzdem sollten Sie der optimalen Nutzung dieser Ressourcen und des Akkus höchste Priorität einräumen, wenn Ihr Add-In auf allen unterstützten Clients und Geräten gut laufen soll. Die Optimierung ist besonders dann wichtig, wenn Ihr Add-In Aufgaben mit langer Bearbeitungszeit durchführt oder große Datasets verarbeitet. In der folgenden Liste werden einige Verfahren vorgeschlagen, mit denen prozessorlastige oder datenintensive Vorgänge aufgeteilt werden können, damit Ihr Add-In nicht übermäßig Ressourcen in Anspruch nimmt und die Hostanwendung reaktionsfähig bleibt:While the resources limits on CPU and memory usage, crash tolerance, UI responsiveness apply to Office Add-ins running only on the rich clients, optimizing the usage of these resources and battery should be a priority if you want your add-in to perform satisfactorily on all supporting clients and devices. Optimization is particularly important if your add-in carries out long-running operations or handles large data sets. The following list suggests some techniques to break up CPU-intensive or data-intensive operations into smaller chunks so that your add-in can avoid excessive resource consumption and the host application can remain responsive:

  • In einem Szenario, in dem Ihr Add-In eine große Datenmenge aus einem unbegrenzten Dataset lesen muss, können Sie eine Auslagerung anwenden, wenn die Daten aus einer Tabelle gelesen werden, oder die Größe der Daten in jedem kürzeren Lesevorgang reduzieren, anstatt zu versuchen, den Lesevorgang in einem einzigen Prozess durchzuführen.In a scenario where your add-in needs to read a large volume of data from an unbounded dataset, you can apply paging when reading the data from a table, or reduce the size of data in each shorter read operation, rather than attempting to complete the read in one single operation.

    For a JavaScript and jQuery code sample that shows breaking up a potentially long-running and CPU-intensive series of inputting and outputting operations on unbounded data, see How can I give control back (briefly) to the browser during intensive JavaScript processing?. This example uses the setTimeout method of the global object to limit the duration of input and output. It also handles the data in defined chunks instead of randomly unbounded data.For a JavaScript and jQuery code sample that shows breaking up a potentially long-running and CPU-intensive series of inputting and outputting operations on unbounded data, see How can I give control back (briefly) to the browser during intensive JavaScript processing?. This example uses the setTimeout method of the global object to limit the duration of input and output. It also handles the data in defined chunks instead of randomly unbounded data.

  • Wenn Ihr Add-In einen prozessorlastigen Algorithmus für die Verarbeitung eines großen Datenvolumens verwendet, können Sie Web-Worker verwenden, um die Aufgabe mit der langen Bearbeitungszeit im Hintergrund auszuführen, während ein separates Skript (z. B. zur Anzeige des Fortschritts auf der Benutzeroberfläche) im Vordergrund ausgeführt wird. Web-Worker blockieren keine Benutzerinteraktionen und sorgen dafür, dass die HTML-Seite reaktionsfähig bleibt. Ein Beispiel für Web-Worker finden Sie unter Web Worker-Grundlagen. Weitere Informationen zur Web Worker-API finden Sie unter Web-Worker.If your add-in uses a CPU-intensive algorithm to process a large volume of data, you can use web workers to perform the long-running task in the background while running a separate script in the foreground, such as displaying progress in the user interface. Web workers do not block user activities and allow the HTML page to remain responsive. For an example of web workers, see The Basics of Web Workers. See Web Workers for more information about the Internet Explorer Web Workers API.

  • Wenn Ihr Add-In einen prozessorlastigen Algorithmus verwendet, die Datenein- oder ausgabe jedoch in kleinere Teile aufgeteilt werden kann, können Sie einen Webdienst erstellen, die Daten an diesen übergeben, um den Prozessor zu entlasten, und auf einen asynchronen Rückruf warten.If your add-in uses a CPU-intensive algorithm but you can divide the data input or output into smaller sets, consider creating a web service, passing the data to the web service to off-load the CPU, and wait for an asynchronous callback.

  • Testen Sie Ihre App immer bei dem höchsten zu erwartenden Datenaufkommen, und schränken Sie Ihr Add-In so ein, dass Verarbeitungen nur bis zu diesem Grenzwert möglich sind.Test your add-in against the highest volume of data you expect, and restrict your add-in to process up to that limit.

Weitere ArtikelSee also