Was ist Profiling?
Als Profiler werden Programmierwerkzeuge bezeichnet, die das Laufzeitverhalten von Software analysieren. Es gibt unterschiedliche Problembereiche in der Softwareentwicklung, die durch ineffiziente Programmierung ausgelöst werden. Ein Profiler hilft dem Entwickler durch Analyse und Vergleich von laufenden Programmen die Problembereiche aufzudecken. Daraus kann man Maßnahmen zur strukturellen und algorithmischen Verbesserung des Quellcodes ableiten.
Die häufigste Anwendung eines Profilers ist das Zählen und Messen der Aufrufe und Durchläufe von Funktionen. Dies ermöglicht es dem Programmierer herauszufinden, wo sich eine Optimierung des Programms lohnt. Eine Optimierung von Funktionen, die nicht häufig verwendet werden, ist der Gesamtleistung des Programms nicht sonderlich zuträglich und erschwert in der Regel die Wartbarkeit des Quellcodes. Deshalb wird das Hauptaugenmerk auf Funktionen gelegt, die oft aufgerufen werden und in der Summe der Aufrufe viel Zeit benötigen.
Referenzlink der Zitate http://de.wikipedia.org/wiki/Profiler_%28Programmierung%29 |
Wie aktiviere ich die Profiling Funktionalität von Confluence?
- Damit das Profiling in Confluence generell funktioniert, muss
- entweder die folgende Zeile in die log4j.properties (Fundort: <tomcat-path>/confluence/WEB-INF/classes) eingepflegt werden
## Atlassian Profiling log4j.logger.com.atlassian.util.profiling.UtilTimerStack=DEBUG
- oder in der Administrationskonsole der aktuellen Confluence-Instanz unter Protokoll- und Profilerstellung der Eintrag log4j.logger.com.atlassian.util.profiling.UtilTimerStack auf DEBUG hinzugefügt werden.
- entweder die folgende Zeile in die log4j.properties (Fundort: <tomcat-path>/confluence/WEB-INF/classes) eingepflegt werden
- Des Weiteren muss in der Administrationskonsole der aktuellen Confluence-Instanz unter Protokoll- und Profilerstellung die Profilerstellung aktiviert werden.
- optional: Man kann mittels log4j es noch so einrichten, dass die Profile-Log Ausgaben in eine separate Datei landen. Die folgenden Änderungen müssen wieder in der Datei log4j.properties (Fundort: <tomcat-path>/confluence/WEB-INF/classes) umgesetzt werden.
- Es ist notwendig einen neuen FileAppender zu definieren.
#### # PROFILING LOG APPENDER ### log4j.appender.profiling=org.apache.log4j.RollingFileAppender log4j.appender.profiling.Threshold=DEBUG log4j.appender.profiling.File=${catalina.home}/logs/profiling.log log4j.appender.profiling.layout=org.apache.log4j.PatternLayout log4j.appender.profiling.layout.ConversionPattern=%d %p [%c{4}] %m%n
- Letztlich muss der Appender der zu überwachenden Klasse angehangen werden. Dazu ändert man lediglich die Zeile:
log4j.logger.com.atlassian.util.profiling.UtilTimerStack=DEBUG
in
log4j.logger.com.atlassian.util.profiling.UtilTimerStack=DEBUG, profiling
ab!
- Es ist notwendig einen neuen FileAppender zu definieren.
Referenzlink zur Confluence Dokumentation http://confluence.atlassian.com/display/CONF210/Troubleshooting+Slow+Performance… |
andere Werkzeuge
Zur Ergänzung werden an dieser Stelle noch zwei Profiler genannt, auf die allerdings nicht näher eingegangen wird.
YourKit Profiler
Als Besonderheit bei diesem Profiler ist zu nennen, dass es für Confluence ein Plugin existiert, welches dem Administrator ermöglicht, die für die Auswertung notwendigen Dumps (CPU und Speicher) über die Administrationskonsole zu generieren.
Referenzlinks YourKit Profiler: http://www.yourkit.com/ Confluence Dokumentation zum Plugin: http://confluence.atlassian.com/display/CONF210/Profiling+using+the+YourKit+Plugin |
Achtung! Für die Software YourKit Profiler, die zur Dump-Auswertung benötigt wird, braucht man eine Lizenz. Es gibt eine Evaluierungslizenz, die allerdings nur für 15 Tage ausgelegt ist. Nach Ablauf dieser Frist muss eine Lizenz erworben/gekauft werden. |
JProfiler
Dies Software besitzt vergleichbare Funktionalitäten, wie der YourKit Profiler.
Referenzlink zum JProfiler http://www.ej-technologies.com/products/jprofiler/overview.html |
Achtung! Für die Software JProfiler, die zur Dump-Auswertung benötigt wird, braucht man eine Lizenz. Es gibt eine Evaluierungslizenz, die allerdings nur für 10 Tage ausgelegt ist. Nach Ablauf dieser Frist muss eine Lizenz erworben/gekauft werden. |