Hauptseminar Softwaretechnik. Profiler unter Linux
|
|
- Klaudia Knopp
- vor 8 Jahren
- Abrufe
Transkript
1 Hauptseminar Softwaretechnik Profiler unter Linux Daniel Zinn 17. Januar 2004
2 Inhaltsverzeichnis Inhaltsverzeichnis 1 Einleitung Laufzeitbestimmung einzelner Module Laufzeit selbst messen Bibliotheks- und Systemaufrufe beobachten Alle Funktionsaufrufe beobachten Jede Zeile des Quelltextes analysieren Ein simulierter Prozessor Das gesamte System beobachten Das Speichermanagement Kommerzielle Tools Zusammenfassung Abbildungsverzeichnis 1 Ausgaben des time-befehls Quelltext des Beispiel-Programmes main ltrace analysiert main GProf call graph für main KProf: Hierarchische Darstellung von xdigger KProf: Aufrufgraph von xdigger (Ausschnitt) GCov: ergänzter Quelltext von main KCachegrind mit Quelltextbrowser und flachem Profil (xdigger) KCachegrind zeigt den Aufrufgraphen der main Funktion (xdigger) OProfile gibt Auskunft über xdigger MemProf analysiert das Programm main Valgrind analysiert das Programm main Valgrind deckt einen Speicherfehler auf Alleyoop analysiert das Programm main Valgui bei der Analyse von Speicherfehlern Profiler unter Linux
3 1 Einleitung 1 Einleitung Ein oft wichtiges Ziel in der Softwareentwicklung ist es, schnelle Produkte zu entwickeln. Die Wahl von schnellen Algorithmen spielt dabei eine große Rolle - leider sind sehr effiziente Algorithmen in der Regel sehr komplex. Im Gegensatz dazu ist man aber bestrebt die Komplexität einer Software so gering wie möglich zu halten. Der Grund hierfür sind einmal die meist höheren Entwicklungskosten und -zeiten, sowie ein erhöhter Aufwand in der Wartung. Darüberhinaus ist es umso schwieriger Korrektheit nachzuweisen je umfangreicher das Softwareprodukt ist. Obwohl moderne Programmiertechniken (Kapselung, Objektorientiertheit) es erlauben sehr komplexe Algorithmen als schon verifizierte Einheiten in das eigene Programm einzubauen, so bleibt das oben geschilderte Problem jedoch auf höherer Ebene erhalten. Oft ist es jedoch gar nicht nötig an allen Stellen des Programmes effizienteste Algorithmen einzusetzen. Der Grund hierfür ist, dass in den meisten Programmen ein großer Teil der Rechenzeit in nur wenigen Modulen verbraucht wird. So ist es möglich durch deren Optimierung die Software ausreichend zu beschleunigen. Mit Hilfe von sogenannten Profilern können zeitliche Messungen an Programmen und Modulen vorgenommen werden. Mit Ihnen kann man herausfinden, bei welchen Modulen sich Optimierungen lohnen. Profiler existieren für zahlreiche Betriebssysteme und für nochmehr Programmiersprachen: für Amiga, Windows, Linux - für.net, PHP, perl, Java und natürlich für C/C++. Profiler können weitaus mehr als nur herausfinden welche Module wieviel Zeit verbrauchen. Am Beispiel der C/C++ Programmierung unter Linux geben die folgenden Kapitel einen Überblick über grundlegende Profilingtechniken. Dies geschieht an Hand grundlegender Tools, welche unter der GNU Public License [3] frei zur Verfügung stehen. Der folgende Text ist also sowohl eine kurze Einführung zum Thema,,Profiling, als auch eine kleine Auflistung verfügbarer Tools für das Linux Betriebssystem zum Untersuchen von in C/C++ geschriebenen Programmen. Was sind Profiler? Wie schon in der Einleitung erwähnt dienen Profiler in erster Linie der Optimierung von Programmen. Profiler können folgende Fragen beantworten: Welche Module werden wirklich benötigt? Welche Anweisungen werden abgearbeitet? Wie oft werden die Anweisungen abgearbeitet? Welche Module verbrauchen die meiste Rechenzeit? In welchen Abschnitten wird die meiste Rechenzeit verbraucht? 3
4 2 Laufzeitbestimmung einzelner Module Darüberhinaus können Profiler das Speichermanagement analysieren und enthaltene Fehler aufzeigen. 2 Laufzeitbestimmung einzelner Module Theoretische Betrachtungen Natürlich ist es möglich die Laufzeiten durch theoretische Betrachtungen abzuschätzen. Bei vielen Basisalgorithmen sind solche Ergebnisse wohlbekannt und erleichtern die Auswahl der jeweiligen Algorithmen. Theoretisches Analysieren soll hier nicht das Thema sein, sondern wurde nur der Vollständigkeit halber erwähnt. 2.1 Laufzeit selbst messen Die wohl einfachste Möglichkeit ist eine Stoppuhr zu benutzen. Dies ist allerdings bei sehr kurzen (< 1 sec) oder langen Programmelaufzeiten (im Stundenbereich) sehr mühsam. Die,,eingebaute Stoppuhr von Linux ist das Kommando time: Wird ein Befehl mit vorangestelltem time gestartet, erhält man nach Programmende Informationen zur Laufzeit des Befehls. Abb. 1 zeigt Beispiele für die Ausgabe des time-befehls. (a) Main (b) Sleep Abbildung 1: Ausgaben des time-befehls Neben der Gesamtlaufzeit (real), wird auch die aktive Bearbeitungszeit im Nutzeradressraum (user) und die Zeit aufgelistet, die von Systemroutinen zur Abarbeitung benötigt wurde (system). Mehr Informationen kann man der Linux man page von time[4] entnehmen. Handelt es sich um selbst geschriebene Programme, so kann man die Funktion clock() benutzen; aus der Differenz eines Aufrufes vor und nach dem zu messenden Programmstück ist die vom Programm benötigte Zeit berechenbar. Weiterhin stellt Linux für jeden Prozeß noch drei Timer zur Verfügung: TIMER REAL Läuft in Echtzeit. ITIMER VIRTUAL Läuft nur, wenn der Prozeß selbst ausgeführt wird. 4 Profiler unter Linux
5 2.2 Bibliotheks- und Systemaufrufe beobachten ITIMER PROF Läuft wenn der Prozeß selbst ausgeführt wird, oder wenn das Betriebssystem im Auftrag des Prozesses handelt. Unter Zuhilfenahme der Systemfunktionen getitimer() und setitimer() können die oben genannten Timer genutzt werden, um Laufzeiten eigener Programmmodule zu ermitteln. Mehr Informationen sind unter der Linux man page für getitimer() [6] zu finden. 2.2 Bibliotheks- und Systemaufrufe beobachten In vielen Programmen wird von externen Bibliotheken reger Gebrauch gemacht. Oft wird sogar die Hauptarbeit von externen Bibliotheken oder dem Betriebssystem selbst erledigt. Mit Hilfe von ltrace[7] und strace[8] können alle Aufrufe in Bibliotheken bzw. in den Kernel selbst beobachtet werden. Auch bei diesen Kommandos sind keine besonderen Vorkehrungen nötig: Wie bei time wird der,,inspektionsprozess gestartet, indem man dem eigentlichen Befehl l- bzw. strace voranstellt. Mit der Option -c werden die Aufrufe gezählt und deren Bearbeitungszeiten addiert - die Ausgabe geschieht dann am Programmende. Dies ist am Beispiel eines kleinen Demonstrationsprogrammes - main - veranschaulicht. Abb. 2 zeigt den Quelltext, während Abb. 3 die Ausgabe von ltrace -cs main darstellt; bemerkenswert ist, dass sich durch die Messung die Ausführzeit des Programm von 0, 01 Sekunden auf 5 Sekunden erhöht hat. Was in der Physik gilt, trifft also auch hier zu - je genauer die Messergebnisse werden, desto stärker verfälschen sie den zu messenden Prozess. Dies macht sich gerade bei vielen kleinen Aufrufen bemerkbar: Bei mehrmaligem Ausführen des ltrace Profilings variieren die für sin, random, new und delete gemessenen Ausführungszeiten stark. Dennoch kann das Wissen über die Anzahl von Aufrufen bestimmter Routinen sehr hilfreich sein und Rückschlüsse auf das Laufzeitverhalten zulassen. 2.3 Alle Funktionsaufrufe beobachten Während mit s- und ltrace Funktionsaufrufe in Bibliotheken und Kernel beobachtet werden können, gibt es auch zahlreiche Möglichkeiten am eigenen Quelltext zu messen. Im GCC sind Mechanismen eingebaut, um Profiling zu ermöglichen: Wird beim Kompilieren und Linken die Option -pg angegeben, schreibt das fertige Programm während der Laufzeit statistische Daten in die Datei gmon.out. Sie kann mit Hilfe des GNU Profiler (GProf) analysiert werden 1. Gesammelte statistische Daten können auf drei verschiedene Weisen ausgegeben werden: flat profile zeigt, wieviel Zeit das Programm in welcher Funktion verbracht hat und wie oft diese Funktion aufgerufen wurde. call graph listet für jede Funktion auf, von wem sie wie oft aufgerufen wurde; weiterhin schätzt GProf hier ab, wieviel Zeit in den Subroutinen verbraucht wurde. Abb. 4 zeigt den Call Graph für das Programm main. 1 mit GProf können nur Programme untersucht werden, die mit dem GCC kompiliert wurden 5
6 2.3 Alle Funktionsaufrufe beobachten Abbildung 2: Quelltext des Beispiel-Programmes main Abbildung 3: ltrace analysiert main 6 Profiler unter Linux
7 2.3 Alle Funktionsaufrufe beobachten annotated source listing ist eine Kopie des Quelltextes, ergänzt durch die Anzahl der Aufrufe der jeweiligen Funktionen. Abbildung 4: GProf call graph für main Wie für viele Kommandozeilentools existiert auch für GProf ein graphisches Frontend - KProf. KProf bietet vier Sichten auf die statistischen Daten an: Die von GProf textuell ausgegebenen Informationen werden in den Registern für das flache und hierarchische Profil dargestellt. Natürlich kann man sämtliche Einträge nach Belieben sortieren - z.b. nach Anzahl der Aufrufe. Im Kontextmenü zu den jeweiligen Funktionen erscheinen Verweise auf Aufrufer und aufgerufene Funktionen. Neben diesen beiden klassischen Anordnungen können die Funktionen auch nach der Objekthierarchie innerhalb des Programmes sortiert werden. Darüber hinaus kann KProf die Aufrufhierarchie selbst grafisch darstellen - oder als Datei in den Graphen-Formaten für VCG bzw. GraphViz abspeichern. Eine genauere Beschreibung, was mit diesen Formaten alles möglich ist, würde den Rahmen hier sprengen; Eine kleine Analyse des Programmes xdigger mit KProf zusammen mit einem Auschnitt des Aufrufgraphen zeigen Abb. 5 und Abb. 6. Im Register Method View ist eine detaillierte Beschreibung der einzelnen Methoden verfügbar: die Navigation zu aufgerufenen und aufrufenden Funktionen ist aufgrund der guten Verlinkung sehr angenehm. 7
8 2.3 Alle Funktionsaufrufe beobachten Abbildung 5: KProf: Hierarchische Darstellung von xdigger Abbildung 6: KProf: Aufrufgraph von xdigger (Ausschnitt) 8 Profiler unter Linux
9 2.4 Jede Zeile des Quelltextes analysieren 2.4 Jede Zeile des Quelltextes analysieren Im Gegensatz zu GProf, welches das Programm auf der Basis von Funktionsaufrufen analysiert, bietet GCov Informationen über jede Zeile des Quelltextes. Wie bei GProf, ist es nötig das zu inspizierende Programm mit speziellen Optionen zu übersetzen 2. Die zu benutzenden Optionen sind -fprofile-arcs und -ftest-coverage. Während das ausführbare Programm erzeugt wird, werden Dateien mit den Endungen bb und bbg angelegt. Diese enthalten,,im Wesentlichen einen Flußgraphen des Programms, welcher zur Ausführung benötigt wird. Die eigentlichen statistischen Daten werden in.da Dateien erzeugt, und bei mehrmaliger Ausführung aufsummiert. So können Daten über verschiedene Testfälle hinweg akkumuliert werden, was in Bezug auf Anweisungsüberdeckungstests sehr hilfreich ist. Weiterhin können so Informationen über einen langen Zeitraum gesammelt werden, um das Durschnittsverhalten der Software besser einschätzen zu können. Der Befehl GCov erzeugt aus den statistischen Daten kommentierte Quelltexte: vor jeder Codezeile steht, wie oft diese ausgeführt wurde. Durch entsprechende Parameter ist es auch möglich, sich für alle Verzweigungen im Programm die Wahrscheinlichkeiten für jeden Zweig anzeigen zu lassen. Abb. 7 zeigt den mit Befehlshäufigkeiten ergänzten Quelltext von main. Abbildung 7: GCov: ergänzter Quelltext von main 2.5 Ein simulierter Prozessor Bei den meisten bisher vorgestellten Profilingtechniken ist es nötig, sein Programm mit speziellen Kompileroptionen zu übersetzen. Ein anderes Profilingtool, Valgrind, geht einen anderen Weg: anstatt zusätzlichen Code in die Programme einzubauen, simuliert Valgrind einen kompletten Prozessor mit Speicher. Die Valgrind-Suite ist modular aufgebaut - zu dem Core, der die Emulation des Prozessors übernimmt, können verschiedene 2 mit GCov können nur Programme untersucht werden, die mit dem GCC kompiliert wurden 9
10 2.6 Das gesamte System beobachten,,skins benutzt werden. Die wichtigsten Skins sind Cachegrind, Calltree und Memcheck: Cachegrind Cachegrind ist ein Cache Profiler, d.h. dieser Skin simuliert zusätzlich zum Programmkern von Valgrind die I1, D1 and L2 Caches. Er kann so Cache Misses, Speicherzugriffe und Instruktionen des Programmes basierend auf Quelltextzeile, Funktion oder auch global für das gesamte Programm darstellen. Cachegrind findet vor dem Start die Konfiguration der aktuellen CPU heraus und kann so sein Prozessormodell auf den momentanen PC anpassen. Calltree Calltree erweitert den Cachegrind Skin um Informationen, welche Funktionen welche anderen aufgerufen haben. Somit sind mit Calltree neben den flachen Profilen der Funktionen auch hierarchische Darstellungen möglich. Mit Hilfe des KDE Programmes KCachegrind können die mit Calltree gesammelten Informationen in einem graphischen Nutzerinterface sehr benutzerfreundlich analysiert werden. Es existiert die Möglickeit alle Funktionen nach Anzahl der Instruktionen, nach lesendem bzw. schreibendem Zugriff sowie nach der Anzahl der Cache Verfehlungen für L1 und L2 Cache zu sortieren. Natürlich kann man auch nach der Anzahl der Funktionsaufrufe selbst sortieren. Sehr gut gelungen ist meiner Meinung nach auch der Quelltextbrowser (siehe Abb. 8). Bereichert durch Profilinginformationen kann man durch die gute Verlinkung gut navigieren. Am beeindruckendsten fand ich die graphische Visualisierung der Aufrufhierarchie, welche durch Kontextmenüs vielfältig angepasst werden kann: Abb. 9 zeigt den Aufrufgraphen der main Funktion des Programmes xdigger. Die relative Größenverteilung entspricht den Anzahl der CPU Instruktionen 3, welche von den Funktionen benötigt wurde. Memcheck Dieser Skin ist für Speicher Profiling nützlich, und wird deshalb in Abschnitt 3 näher beschrieben. Die Abarbeitungszeit des Programms verlangsamt sich laut Dokumentation [12] etwa um den Faktor 50 - dies beeinflußt aber wegen der Simulation des Programmes nicht die statistischen Ergebnisse. 2.6 Das gesamte System beobachten Will man neben dem eigenen Programm auch das gesamte System unter die Lupe nehmen, bietet sich OProfile an. OProfile ist ein systemweiter Profiler für Linux Systeme. 3 oder einem der anderen Aspekte, nach denen sortiert werden kann 10 Profiler unter Linux
11 2.6 Das gesamte System beobachten Abbildung 8: KCachegrind mit Quelltextbrowser und flachem Profil (xdigger) Abbildung 9: KCachegrind zeigt den Aufrufgraphen der main Funktion (xdigger) 11
12 3 Das Speichermanagement Er nutzt die internen Counter moderner CPUs, um Profiling Daten zu sammeln 4. Er kann mit wenig Overhead Hardware und Software, Interrupthandler, Kernel Module, den Kernel selbst, Shared Libraries und Anwendungen untersuchen. OProfile besteht aus einem Kernel Modul, einem Daemon, der die Daten sammelt, und verschiedenen Werkzeugen zum Auswerten der gesammelten Daten. Neben einer Auflistung aller Prozesse und Libraries (nach Laufzeit sortiert), kann man sich auch innerhalb eines beliebigen Programmes die Funktionen nach Laufzeit sortiert anzeigen lassen 5. Abb. 10 zeigt die Ausgabe, wenn man über xdigger Auskunft haben möchte. Abbildung 10: OProfile gibt Auskunft über xdigger OProfile gehört nicht zu den Standard Paketen der Debian Linux Distribution 6, und muß deshalb selbst kompiliert werden, was aber durch den autoconf-mechanismus mittels./configure und make ohne Probleme durchführbar ist 7. 3 Das Speichermanagement Profiler sind auch in der Lage Fehler beim Speichermanagement aufzudecken. Im Gegensatz zu den Maßnahmen im ersten Kapitel, welche sich vorrangig um Geschwindigkeitsoptimierung kümmern, möchte ich nun Programme vorstellen, die helfen echte Programmierfehler aufzudecken. Fehler bei der Speicherbenutzung können zu sogenannten,,segmentation Faults führen 8. Dies ist der Fall, wenn ein Prozess versucht auf Speicherbereiche zuzugreifen, die nicht für ihn reserviert wurden. Moderne CPUs überprüfen bei 4 Aus diesem Grund darf der,,enhanced Real Time Clock Support nicht im Kernel aktiviert sein oder als Modul (rtc) geladen worden sein, wenn man OProfile benutzen will. 5 Natürlich kann auch OProfile nur dann Funktionennamen auflösen, wenn die zugehörigen Binaries Debuginformationen enthalten, also mit -g kompiliert wurden. 6 auch nicht im sid Zweig, Stand In der 2.6er Serie des Linux Kernels ist OProfile schon integriert; das Kernel Modul kann so einfach hinzugeladen werden. 8 oder Bluescreens in Windows-verwandten Betriebssystemen 12 Profiler unter Linux
13 3 Das Speichermanagement jedem Zugriff auf den Speicher, ob der angeforderte Bereich dem jeweiligen Prozeß zugeordnet ist. Dies schützt Programme gegenseitig,,voreinander. Weitere,,Speicher-Fehler bei der Programmierung sind zum Beispiel: Benutzen von nichtinitialisierten Speicherbereichen Lesen oder Schreiben von Speicher, nachdem dieser freigegeben wurde Lesen oder Schreiben über die Grenzen eines mit malloc reservierten Bereiches hinweg Lesen und Beschreiben von falschen Bereichen auf dem Stack Sogenannte,,Memory Leaks - wenn alle Zeiger auf dynamischen Speicherplatz gelöscht werden Falsche Kombinationen beim Benutzen von malloc, new und new [] mit free, delete und delete [] Überlappende src und dst Zeiger bei der Benutzung von memcpy() oder verwandten Funktionen und noch vieles mehr... Im folgenden möchte ich auf ein paar Tools eingehen, die helfen solche Probleme zu finden. Memory Leaks Memory Leaks entstehen, wenn alle Referenzen auf dynamisch reservierten Speicher verloren gehen oder überschrieben werden; dann ist es nämlich nicht mehr möglich auf diesen Bereich zuzugreifen oder ihn wieder frei zu geben. In Sprachen, wie C oder C++, die keine Garbage Collection besitzen, wächst so der vom Programm benutzte Speicher immer weiter an. Die Folge davon ist, dass das Betriebssystem verstärkt ausswappen muß - dies verlangsamt das betreffende und alle anderen Programme. Im schlimmsten Fall kann der Swapbereich vollaufen, und das Betriebssystem ist gezwungen Prozesse zu killen 9. top Der wohl einfachste Weg herauszufinden, ob ein Programm,,undichte Stellen besitzt, ist es während der Abarbeitung mittels top zu beobachten. Top listet alle Prozesse auf, und sortiert diese auf Wunsch (drücken von M) absteigend nach dem benutzten Speicher. 9 Was z.b. im Falle von Linux nicht unbedingt das verursachende Programm sein muß. 13
14 3 Das Speichermanagement MemProf Detailliertere Informationen bietet MemProf, eine grafische Gnome Anwendung. Mem- Prof kann den Speicher durchsuchen und dynamisch reservierte Blöcke finden, auf die nirgends mehr referenziert wird. Zusätzlich kann man sich auflisten lassen, welche Funktionen wieviel Speicher reserviert haben. Es ist nicht nötig, das zu inspizierende Programm mit speziellen Optionen zu kompilieren, da MemProf die Routinen zur Speicherbereitstellung durch Überladen der C Funktionen überschreibt 10. Abbildung 11: MemProf analysiert das Programm main Abb. 11 zeigt wie MemProf main analysiert; im Unterschied zu den bisher dargestellten Tools findet die Analyse zeitgleich mit der Abarbeitung des Programmes statt - der Balken bewegt sich also während das Programm abgearbeitet wird. Die drei verschiedenen Farben haben folgende Beutung: Gelb Reservierter Speicherbereich Blau Reservierter Bereich, der dann freigegeben wurde (,,high-warter-mark ) Rot Verweister Speicherbereich (erscheint nach Drücken der,,leaks Taste) Wie zu erkennen ist, existieren in dem Programm main verweiste Speicherbereiche. Hier ist es noch einfach, sie im Quelltext zu finden. Valgrind mit Memcheck Skin Der Memcheck-Skin von Valgrind eignet sich sehr gut zum Aufspüren von Speicherfehlern. Alle auf Seite 13 genannten Fehler werden von Memcheck entdeckt. Aufgerufen wird der Memory Profiler mit dem Befehl Valgrind vor dem zu testenden Programm. Dabei können durch verschiedene Parameter diverse Einstellungen getätigt werden. So z.b. veranlasst leak-check=yes Valgrind nach dem Beenden das Programmes nach Memory Leaks zu suchen. Die Option gdb-attach=yes startet den GNU Debugger nachdem ein Fehler entdeckt wurde. 10 Wie immer ermöglichen Debugoptionen (-g) Funktionsnamen aufzulösen. 14 Profiler unter Linux
15 3 Das Speichermanagement Abb. 12 zeigt die Ausgabe von Valgrind leak-check=yes nach dem Testen des,,undichten main Beispiels. Abbildung 12: Valgrind analysiert das Programm main Als letztes Beispiel möchte ich noch das Programm StringTest mit Valgrind analysieren. Es zeigt an wenigen Zeilen Quelltext, wie schwer es ist Speicherfehler zu entdecken; hinzukommt, dass der Fehler bei diesem kleinen Programm noch nicht einmal einen Absturz verursacht - es läuft anscheinend fehlerfrei. Genau solche Fehler sind es, die durch normales Debuggen sehr schwer zu finden sind und oft mysteriöse, nicht reproduzierbare Programmabstürze zur Folge haben. Der kurze Quelltext ist zusammen mit einem Ausschnitt der Analyse von Valgrind in Abb. 13 zu sehen: Der Speicherbereich der bei ptr für den String reserviert wird, ist um 1 Byte zu kurz 11. Wird nun der String an der Adresse ptr herausgeschrieben, liest der Prozessor eine nicht reservierte Speicherzelle; hier steht wahrscheinlich eine 0, sodass die Ausgabe,,Hello World scheinbar fehlerfrei auf dem Bildschirm erscheint. Auch kommt es zu keinem Segmentation fault, da Speicher durch das Betriebssystem nur seitenweise an Prozesse gegeben wird und die Schutzmechanismen auf der Granularität von Seiten und nicht einzelner Bytes verwirklicht sind. Als graphische Frontends für den Memcheck-Skin kann man Alleyoop [14] oder Valgui benutzen. 11 Die dreizehn Byte Speicherbedarf für den String ergeben sich aus zwölf Byte Buchstaben und der abschließenden 0 für C-Strings. 15
16 3 Das Speichermanagement (a) Quelltext (b) Analyse von Valgrind Abbildung 13: Valgrind deckt einen Speicherfehler auf Alleyoop stellt die Ergebnisse von Valgrind in einem Baum übersichtlicher dar; bei jedem gefundenen Memory Leak erscheinen die verursachenden Quelltextzeilen in der Baumansicht. Durch Doppelklicken kann ein Editor die entsprechende Datei öffnen und automatisch an die betreffende Quelltextzeile springen. Abb. 14 zeigt die Analyse des Programmes main. Abbildung 14: Alleyoop analysiert das Programm main Valgui ist nur als CVS Version erhältlich, und ließ sich erst nach kleineren Änderungen im Quelltext kompilieren 12. Der Funktionsumfang hingegen ist umfangreicher als der von 12 Benutzte QT-Version: 3.2.3; GCC Version Profiler unter Linux
17 4 Kommerzielle Tools Alleyoop: Einstellungen für Pfade der Quelldateien, zahlreiche Filtermöglichkeiten und Quelltextvorschau sind implementiert. Genauere Informationen sind auf der (recht rudimentären) Webpage von Valgui [15] verfügbar. Abb. 15 zeigt Valgui mit zwei Sichten auf dasselbe Dokument. Während die linke Seite gänzlich ungefiltert ist, ist bei der gefiltereten Ausgabe rechts auch ein Teil des Quellcodes vorhanden. Abbildung 15: Valgui bei der Analyse von Speicherfehlern 4 Kommerzielle Tools VTune Neben den hier vorgestellten freien Tools gibt es natürlich noch kommerzielle Produkte. Intel vertreibt das Produkt VTune, welches seit 2003 auch als Linux Version vorliegt. VTune für Linux benutzt, wie OProfile die Profiling Mechanismen moderner CPUs. Intel bietet eine 7-tägige Testversion des Produktes an - Die Installation der Linux Version erfolgt durch ein in kompilierter Form ausgeliefertes Installationsprogramm. Dies kann nur mit root-rechten ausgeführt werden, was mich davon abgehalten hat, das Programm weiter zu testen. 17
18 4 Kommerzielle Tools Rational Purify Plus Das von IBM angebotene Tool Rational Purify Plus erstellt Zeit- und Performance profile von Programmen und kann Memory Leaks aufspüren. Die in der Dokumentation vorgestellte Funktionalität und die gezeigte grafische Oberfläche sind sehr umfangreich. Auch IBM bietet eine 7-tägige Testversion an. Das Programm lies sich leicht installieren (was diesmal ohne Supernutzer-Rechte möglich war). Beim Ausführen der Testbeispiele erschien auf meinem System 13 die Fehlermeldung: ld.so: Incorrectly built binary which accesses errno or h errno directly. ld.so: See /usr/share/doc/libc6/faq.gz. Nach mehreren Warnungen hat Pruify schließlich abgebrochen. 13 GNU Debian Sid, er Kernel 18 Profiler unter Linux
19 5 Zusammenfassung 5 Zusammenfassung Hier die,,vorzüge und,,schwächen der vorgestellten Profilingtools: Programm Zeit messen Aufrufe zählen Speicher debuggen GUI Besonderheiten time l/strace GProf genaue Gesamtlaufzeit für das gesamte Programm Laufzeit für alle Funktionen - - nicht nötig System- und Bibliotheksfunktionen System- und Bibliotheksfunktionen alle Funktionen, zeigt Aufrufhierarchie KProf GCov - alle Befehle - - Valgrind Simulation aller Befehle, Bibliotheken und Systemaufrufe MemProf - - OProfile VTune, Rational Prurify alle Befehle Alle Funktionen, Bibliotheksund Systemaufrufe Alle Funktionen, Bibliotheksund Systemaufrufe zeigt Memory Leaks - - Alle Funktionen, Bibliotheksund Systemaufrufe Alle Funktionen, Bibliotheksund Systemaufrufe Viele Speicherfehler zeigt Vielzahl von Speicherfehlern KCachegrind, Alleyoop, Valgui ist GUI enthält umfangreiche GUIs keine Anforderungen an Programm keine Anforderungen an Programm Programm muß mit pg übersetzt werden Programm muß mit speziellen Optionen neu übersetzt werden Simulation einer CPU; Programm muß shared Libraries benutzen; sehr langsam zeigt Speicherverbrauch dynamisch während der Laufzeit benutzt Kernel Modul, profiled alle laufenden Prozesse eines Systems kommerzielle Tools 19
20 Index Index Alleyoop, Cachegrind, 10 Calltree, 10 clock(), 4 GCov, 9 getitimer(), 5 GProf, 5, 7, 9 KCachegrind, 10, 11 KProf, 7, 8 ltrace, 5, 6 Memcheck, 10, 14, 15 MemProf, 14 OProfile, 10, 12, 17 Rational Purify Plus, 18 setitimer(), 5 strace, 5 time, 4, 5 top, 13 Valgrind, 9, 10, Valgui, VTune, Profiler unter Linux
21 Literatur und Infos Literatur und Infos [1] Stephan Siemen: Programme beschleunigen mit Profilern und Memory-Debuggern; Linux-Magazin Okt [2] Günther Röhrich: Programmieren mit Linux; 2000 Linux-Magazin März 2000 [3] Gnu Public License, [4] Linux man pages, Sektion 1: time [5] Linux man pages, Sektion 3: clock [6] Linux man pages, Sektion 2: getitimer [7] Linux man pages, Sektion 1: ltrace [8] Linux man pages, Sektion 1: strace [9] Linux man pages, Sektion 1: gprof [10] Linux man pages, Sektion 1: gcov [11] KProf: [12] Valgrind, mit Skins: [13] KCachegrind und Calltree: [14] Alleyoop: [15] Valgui: [16] OProfile: [17] MemProf: [18] Rational Purify Plus: [19] VTune: 21
Was ist ein Profiler?
Profiling Was ist ein Profiler? (Theorie) Invasives Profiling Nichtinvasives Profiling Profiling in der Praxis gprof, gcov OProfile valgrind/callgrind Intel VTune Was ist ein Profiler? Analyse des Laufzeitverhaltens
MehrDownloadfehler in DEHSt-VPSMail. Workaround zum Umgang mit einem Downloadfehler
Downloadfehler in DEHSt-VPSMail Workaround zum Umgang mit einem Downloadfehler Downloadfehler bremen online services GmbH & Co. KG Seite 2 Inhaltsverzeichnis Vorwort...3 1 Fehlermeldung...4 2 Fehlerbeseitigung...5
MehrOutlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang
sysplus.ch outlook - mail-grundlagen Seite 1/8 Outlook Mail-Grundlagen Posteingang Es gibt verschiedene Möglichkeiten, um zum Posteingang zu gelangen. Man kann links im Outlook-Fenster auf die Schaltfläche
MehrBinäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen
Binäre Bäume 1. Allgemeines Binäre Bäume werden grundsätzlich verwendet, um Zahlen der Größe nach, oder Wörter dem Alphabet nach zu sortieren. Dem einfacheren Verständnis zu Liebe werde ich mich hier besonders
MehrEinführung zum Arbeiten mit Microsoft Visual C++ 2010 Express Edition
In den nachfolgenden Schritten finden Sie beschrieben, wie Sie in der Entwicklungsumgebung Microsoft Visual Studio 2010 eine Projektmappe, ein Projekt und einen ersten Quellcode erstellen, diesen kompilieren,
MehrDokumentation IBIS Monitor
Dokumentation IBIS Monitor Seite 1 von 16 11.01.06 Inhaltsverzeichnis 1. Allgemein 2. Installation und Programm starten 3. Programmkonfiguration 4. Aufzeichnung 4.1 Aufzeichnung mitschneiden 4.1.1 Inhalt
MehrWebalizer HOWTO. Stand: 18.06.2012
Webalizer HOWTO Stand: 18.06.2012 Copyright 2003 by manitu. Alle Rechte vorbehalten. Alle verwendeten Bezeichnungen dienen lediglich der Kennzeichnung und können z.t. eingetragene Warenzeichen sein, ohne
MehrNach dem Einstecken des mdentity wird die Anwendung nicht gestartet
Nach dem Einstecken des mdentity wird die Anwendung nicht gestartet Zum Start der Anwendung, nach dem Einstecken des midentity Geräts, gibt es mehrere Möglichkeiten. Sofern Sie das midentity Gerät unter
MehrAdvoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank
Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank Die Entscheidung Advoware über VPN direkt auf dem lokalen PC / Netzwerk mit Zugriff auf die Datenbank des zentralen Servers am anderen
MehrGITS Steckbriefe 1.9 - Tutorial
Allgemeines Die Steckbriefkomponente basiert auf der CONTACTS XTD Komponente von Kurt Banfi, welche erheblich modifiziert bzw. angepasst wurde. Zuerst war nur eine kleine Änderung der Komponente für ein
MehrJederzeit Ordnung halten
Kapitel Jederzeit Ordnung halten 6 auf Ihrem Mac In diesem Buch war bereits einige Male vom Finder die Rede. Dieses Kapitel wird sich nun ausführlich diesem so wichtigen Programm widmen. Sie werden das
MehrAnleitung über den Umgang mit Schildern
Anleitung über den Umgang mit Schildern -Vorwort -Wo bekommt man Schilder? -Wo und wie speichert man die Schilder? -Wie füge ich die Schilder in meinen Track ein? -Welche Bauteile kann man noch für Schilder
MehrArtikel Schnittstelle über CSV
Artikel Schnittstelle über CSV Sie können Artikeldaten aus Ihrem EDV System in das NCFOX importieren, dies geschieht durch eine CSV Schnittstelle. Dies hat mehrere Vorteile: Zeitersparnis, die Karteikarte
MehrHandbuch Fischertechnik-Einzelteiltabelle V3.7.3
Handbuch Fischertechnik-Einzelteiltabelle V3.7.3 von Markus Mack Stand: Samstag, 17. April 2004 Inhaltsverzeichnis 1. Systemvorraussetzungen...3 2. Installation und Start...3 3. Anpassen der Tabelle...3
MehrAnzeige von eingescannten Rechnungen
Anzeige von eingescannten Rechnungen Wenn Sie sich zu einer Eingangsrechnung die eingescannte Originalrechnung ansehen möchten, wählen Sie als ersten Schritt aus Ihrem Benutzermenü unter dem Kapitel Eingangsrechnung
MehrVisual Basic Express erstes Projekt anlegen
Inhalt Dokument Beschreibung... 1 Erstes Projekt anlegen... 1 Verweise hinzufügen... 2 Imports setzen... 5 Public Class vorbereiten... 6 Mehrere Tools programmieren... 7 Dokument Beschreibung Nach der
MehrWie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann.
Wie man Registrationen und Styles von Style/Registration Floppy Disketten auf die TYROS-Festplatte kopieren kann. Einleitung Es kommt vor, dass im Handel Disketten angeboten werden, die Styles und Registrationen
Mehrmultisign Signatur-Prüfwerkzeug Handbuch Security Networks AG Stand: 24.06.05
multisign Signatur-Prüfwerkzeug Handbuch Security Networks AG multisign Signatur Prüfwerkzeug Benutzerhandbuch 1 1 Einleitung Die multisign-produktfamilie ermöglicht die automatische Erstellung qualifizierter
MehrSpeicher in der Cloud
Speicher in der Cloud Kostenbremse, Sicherheitsrisiko oder Basis für die unternehmensweite Kollaboration? von Cornelius Höchel-Winter 2013 ComConsult Research GmbH, Aachen 3 SYNCHRONISATION TEUFELSZEUG
MehrNEUES BEI BUSINESSLINE WINDOWS
Fon: 0761-400 26 26 Schwarzwaldstr. 132 Fax: 0761-400 26 27 rueckertsoftware@arcor.de 79102 Freiburg www.rueckert-software.de Beratung Software Schulung Hardware Support Schwarzwaldstrasse 132 79102 Freiburg
MehrKontakte Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.
Kontakte Kontakte Seite 1 Kontakte Seite 2 Inhaltsverzeichnis 1. ALLGEMEINE INFORMATIONEN ZU DEN KONTAKTEN 4 2. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 3. STAMMDATEN FÜR DIE KONTAKTE 4 4. ARBEITEN
MehrAnleitung zum GUI Version 2.x
GUI (Graphical User Interface) für PC-DMIS V3.x 4.x Seite 1 von 7 Anleitung zum GUI Version 2.x Einsatzziel des Programms: Über ein grafisches Menü PC-DMIS Messprogramme starten. Empfehlenswert für Anwender
MehrEin Blick voraus. des Autors von C++: Bjarne Stroustrup. 04.06.2005 Conrad Kobsch
Ein Blick voraus des Autors von C++: Bjarne Stroustrup 04.06.2005 Conrad Kobsch Inhalt Einleitung Rückblick Nur eine Übergangslösung? Was würde C++ effektiver machen? Quelle 2 Einleitung Wo steht C++,
MehrInstallationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0
Installationsanleitung für das Integrity Tool zur AusweisApp Version 1.7 (Microsoft Windows) Dokumentversion 1.0 Inhaltsverzeichnis 1 Vorbemerkung 2 2 Mindestanforderungen an Ihr System 3 3 Sicherheitsmaßnahmen
MehrWie halte ich Ordnung auf meiner Festplatte?
Wie halte ich Ordnung auf meiner Festplatte? Was hältst du von folgender Ordnung? Du hast zu Hause einen Schrank. Alles was dir im Wege ist, Zeitungen, Briefe, schmutzige Wäsche, Essensreste, Küchenabfälle,
MehrInformationen zur Verwendung von Visual Studio und cmake
Inhaltsverzeichnis Informationen zur Verwendung von Visual Studio und cmake... 2 Erste Schritte mit Visual Studio... 2 Einstellungen für Visual Studio 2013... 2 Nutzung von cmake... 6 Installation von
MehrSOFiSTiK AG 2011. Installationsanleitung
SOFiSTiK AG 2011 Installationsanleitung Copyright SOFiSTiK AG, D-85764 Oberschleißheim, 1990-2011 Dieses Handbuch ist urheberrechtlich geschützt. Kein Teil darf ohne schriftliche Genehmigung der SO- FiSTiK
MehrInstallationsleitfaden kabelsafe backup professional unter MS Windows
Installationsleitfaden kabelsafe backup professional unter MS Windows Installationsanleitung und Schnelleinstieg kabelsafe backup professional (kabelnet-obm) unter MS Windows Als PDF herunterladen Diese
MehrThermoguard. Thermoguard CIM Custom Integration Module Version 2.70
Thermoguard Thermoguard CIM Custom Integration Module Version 2.70 Inhalt - Einleitung... 3 - Voraussetzungen... 3 - Aktivierung und Funktion der Schnittstelle... 3 - Parameter... 4 - NLS-Einfluss... 4
MehrObjektorientierte Programmierung für Anfänger am Beispiel PHP
Objektorientierte Programmierung für Anfänger am Beispiel PHP Johannes Mittendorfer http://jmittendorfer.hostingsociety.com 19. August 2012 Abstract Dieses Dokument soll die Vorteile der objektorientierten
MehrVerwenden von OnlineUebungen.ch nichts einfacher als das!
Verwenden von OnlineUebungen.ch nichts einfacher als das! Diese Kurzanleitung soll Ihnen einen Schnell-Überblick über den SchulArena-Übungsgenerator www.onlineuebungen.ch verschaffen. 1. Anmeldung als
MehrHilfe Bearbeitung von Rahmenleistungsverzeichnissen
Hilfe Bearbeitung von Rahmenleistungsverzeichnissen Allgemeine Hinweise Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Grundlagen...3 1.2 Erstellen und Bearbeiten eines Rahmen-Leistungsverzeichnisses...
MehrAnton Ochsenkühn. amac BUCH VERLAG. Ecxel 2016. für Mac. amac-buch Verlag
Anton Ochsenkühn amac BUCH VERLAG Ecxel 2016 für Mac amac-buch Verlag 2 Word-Dokumentenkatalog! Zudem können unterhalb von Neu noch Zuletzt verwendet eingeblendet werden. Damit hat der Anwender einen sehr
MehrLineargleichungssysteme: Additions-/ Subtraktionsverfahren
Lineargleichungssysteme: Additions-/ Subtraktionsverfahren W. Kippels 22. Februar 2014 Inhaltsverzeichnis 1 Einleitung 2 2 Lineargleichungssysteme zweiten Grades 2 3 Lineargleichungssysteme höheren als
MehrInnovator 11 classix. Anbindung an Eclipse. Einführung, Installation und Konfiguration. Connect. Michael Kaaden. www.mid.de
Innovator 11 classix Anbindung an Eclipse Einführung, Installation und Konfiguration Michael Kaaden Connect www.mid.de Einführung in die Innovator-Eclipse-Anbindung Die hier beschriebene Anbindung steht
Mehr1 Mathematische Grundlagen
Mathematische Grundlagen - 1-1 Mathematische Grundlagen Der Begriff der Menge ist einer der grundlegenden Begriffe in der Mathematik. Mengen dienen dazu, Dinge oder Objekte zu einer Einheit zusammenzufassen.
MehrFraunhofer FOKUS ADPSW-INSTALLATION. Abiturdaten-Prüfsoftware. Version 3.0.1, 7. Mai 2013 FRAUNHOFER-INSTITUT FÜR OFFENE KOMMUNIKATIONSSYSTEME FOKUS
Fraunhofer FOKUS FRAUNHOFER-INSTITUT FÜR OFFENE KOMMUNIKATIONSSYSTEME FOKUS ADPSW-INSTALLATION Abiturdaten-Prüfsoftware Version 3.0.1, 7. Mai 2013 IN ZUSAMMENARBEIT MIT ADPSW-INSTALLATION Abiturdaten-Prüfsoftware
Mehr3 Installation von Exchange
3 Installation von Exchange Server 2010 In diesem Kapitel wird nun der erste Exchange Server 2010 in eine neue Umgebung installiert. Ich werde hier erst einmal eine einfache Installation mit der grafischen
MehrGezielt über Folien hinweg springen
Gezielt über Folien hinweg springen Nehmen wir an, Sie haben eine relativ große Präsentation. Manchmal möchten Sie über Folien hinweg zu anderen Folien springen. Das kann vorkommen, weil Sie den gesamten
MehrHistorical Viewer. zu ETC5000 Benutzerhandbuch 312/15
Historical Viewer zu ETC5000 Benutzerhandbuch 312/15 Inhaltsverzeichnis 1 Allgemeine Hinweise... 3 1.1 Dokumentation...3 2 Installation... 3 3 Exportieren der Logdatei aus dem ETC 5000... 3 4 Anlegen eines
Mehrmobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005
Das Software Studio Christian Efinger mobilepoi 0.91 Demo Version Anleitung Erstellt am 21. Oktober 2005 Kontakt: Das Software Studio Christian Efinger ce@efinger-online.de Inhalt 1. Einführung... 3 2.
MehrLieferschein Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.
Lieferschein Lieferscheine Seite 1 Lieferscheine Seite 2 Inhaltsverzeichnis 1. STARTEN DER LIEFERSCHEINE 4 2. ARBEITEN MIT DEN LIEFERSCHEINEN 4 2.1 ERFASSEN EINES NEUEN LIEFERSCHEINS 5 2.1.1 TEXTFELD FÜR
MehrGEVITAS Farben-Reaktionstest
GEVITAS Farben-Reaktionstest GEVITAS Farben-Reaktionstest Inhalt 1. Allgemeines... 1 2. Funktionsweise der Tests... 2 3. Die Ruhetaste und die Auslösetaste... 2 4. Starten der App Hauptmenü... 3 5. Auswahl
MehrTutorial - www.root13.de
Tutorial - www.root13.de Netzwerk unter Linux einrichten (SuSE 7.0 oder höher) Inhaltsverzeichnis: - Netzwerk einrichten - Apache einrichten - einfaches FTP einrichten - GRUB einrichten Seite 1 Netzwerk
MehrMenü Macro. WinIBW2-Macros unter Windows7? Macros aufnehmen
Menü Macro WinIBW2-Macros unter Windows7?... 1 Macros aufnehmen... 1 Menübefehle und Schaltflächen in Macros verwenden... 4 Macros bearbeiten... 4 Macros löschen... 5 Macro-Dateien... 5 Macros importieren...
MehrStep by Step Softwareverteilung unter Novell. von Christian Bartl
Step by Step Softwareverteilung unter Novell von Softwareverteilung unter Novell 1) Starten von einfachen *.EXE-Dateien: Starten sie ConsoleOne Erstellen sie eine eigene Organisationseinheit für ihre Anwendungen
MehrS7-Hantierungsbausteine für R355, R6000 und R2700
S7-Hantierungsbausteine für R355, R6000 und R2700 1. FB90, Zyklus_R/W Dieser Baustein dient zur zentralen Kommunikation zwischen Anwenderprogramm und dem Modul R355 sowie den Geräten R6000 und R2700 über
MehrIhr IT-Administrator oder unser Support wird Ihnen im Zweifelsfall gerne weiterhelfen.
Dieses Dokument beschreibt die nötigen Schritte für den Umstieg des von AMS.4 eingesetzten Firebird-Datenbankservers auf die Version 2.5. Beachten Sie dabei, dass diese Schritte nur bei einer Server-Installation
Mehrec@ros2-installer ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Eschenweg 7 64331 Weiterstadt
ecaros2 Installer procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Download des ecaros2-installer...3 2 Aufruf des ecaros2-installer...3 2.1 Konsolen-Fenster (Windows)...3 2.2 Konsolen-Fenster
MehrCMS.R. Bedienungsanleitung. Modul Cron. Copyright 10.09.2009. www.sruttloff.de CMS.R. - 1 - Revision 1
CMS.R. Bedienungsanleitung Modul Cron Revision 1 Copyright 10.09.2009 www.sruttloff.de CMS.R. - 1 - WOZU CRON...3 VERWENDUNG...3 EINSTELLUNGEN...5 TASK ERSTELLEN / BEARBEITEN...6 RECHTE...7 EREIGNISSE...7
MehrHinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt
Hinweise zur Datensicherung für die - Prüfmittelverwaltung - Inhalt 1. Vorbetrachtungen... 2 2. Die Installation... 2 3. Einstellungen - Erstellung der Verknüpfung... 3 3.1 Benutzung des Konfigurationsprogramms
MehrSatzhilfen Publisher Seite Einrichten
Satzhilfen Publisher Seite Einrichten Es gibt verschiedene Möglichkeiten die Seite einzurichten, wir fangen mit der normalen Version an, Seite einrichten auf Format A5 Wählen Sie zunächst Datei Seite einrichten,
MehrSRH - Kurzinformation
SRH - Kurzinformation Dieses Dokument gibt eine Übersicht über das Shockley/Read/Hall-Programm, im folgenden SRH- Programm genannt. Bei dem SRH-Programm handelt es sich um ein Java Programm, welches in
MehrDatenbanken Kapitel 2
Datenbanken Kapitel 2 1 Eine existierende Datenbank öffnen Eine Datenbank, die mit Microsoft Access erschaffen wurde, kann mit dem gleichen Programm auch wieder geladen werden: Die einfachste Methode ist,
MehrKonfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung
Konfiguration von Igel ThinClients fu r den Zugriff via Netscaler Gateway auf eine Storefront/ XenDesktop 7 Umgebung Inhalt 1. Einleitung:... 2 2. Igel ThinClient Linux OS und Zugriff aus dem LAN... 3
MehrMORE Profile. Pass- und Lizenzverwaltungssystem. Stand: 19.02.2014 MORE Projects GmbH
MORE Profile Pass- und Lizenzverwaltungssystem erstellt von: Thorsten Schumann erreichbar unter: thorsten.schumann@more-projects.de Stand: MORE Projects GmbH Einführung Die in More Profile integrierte
MehrKennen, können, beherrschen lernen was gebraucht wird www.doelle-web.de
Inhaltsverzeichnis Inhaltsverzeichnis... 1 Grundlagen... 2 Hyperlinks innerhalb einer Datei... 2 Verweisziel definieren... 2 Einen Querverweis setzen... 3 Verschiedene Arten von Hyperlinks... 3 Einfache
MehrMassenversand Dorfstrasse 143 CH - 8802 Kilchberg Telefon 01 / 716 10 00 Telefax 01 / 716 10 05 info@hp-engineering.com www.hp-engineering.
Massenversand Massenversand Seite 1 Massenversand Seite 2 Inhaltsverzeichnis 1. WICHTIGE INFORMATIONEN ZUR BEDIENUNG VON CUMULUS 4 2. STAMMDATEN FÜR DEN MASSENVERSAND 4 2.1 ALLGEMEINE STAMMDATEN 4 2.2
MehrThe ToolChain.com. Grafisches Debugging mit der QtCreator Entwicklungsumgebung
The ToolChain Grafisches Debugging mit der QtCreator Entwicklungsumgebung geschrieben von Gregor Rebel 2014-2015 Hintergrund Neben dem textuellen Debuggen in der Textkonsole bieten moderene Entwicklungsumgebungen
MehrBEFRAGUNGSMANAGER. Ergebnisse der Kundenbefragung. 21.01.2015 bis 27.02.2015. Tübingen, Juni 2015
BEFRAGUNGSMANAGER Ergebnisse der Kundenbefragung 21.01.2015 bis 27.02.2015 Tübingen, Juni 2015 Herzlichen Dank! Wir möchten uns ganz herzlich für die rege Teilnahme an unserer Kundenbefragung im Frühjahr
MehrVisual Basic Express Debugging
Inhalt Dokument Beschreibung... 1 Projekt vorbereiten... 1 Verknüpfung zu Autocad/ProStructures einstellen... 2 Debugging... 4 Autocad/ProSteel Beispiel... 5 Dokument Beschreibung Debuggen nennt man das
MehrMatrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version 1.0.0. 23. September 2015 - 1 -
Matrix42 Use Case - Sicherung und Rücksicherung persönlicher Version 1.0.0 23. September 2015-1 - Inhaltsverzeichnis 1 Einleitung 3 1.1 Beschreibung 3 1.2 Vorbereitung 3 1.3 Ziel 3 2 Use Case 4-2 - 1 Einleitung
MehrPocketPC.ch Review. SBSH ilauncher 3.1. Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember 2007. PocketPC.ch_Review_iLauncher.
PocketPC.ch Review SBSH ilauncher 3.1 Erstelldatum: 3. Dezember 2007 Letzte Änderung: 3. Dezember 2007 Autor: Dateiname: PocketPC.ch_Review_iLauncher.doc Inhaltsverzeichnis SBSH ilauncher 3.1...3 Übersicht...
Mehretutor Benutzerhandbuch XQuery Benutzerhandbuch Georg Nitsche
etutor Benutzerhandbuch Benutzerhandbuch XQuery Georg Nitsche Version 1.0 Stand März 2006 Versionsverlauf: Version Autor Datum Änderungen 1.0 gn 06.03.2006 Fertigstellung der ersten Version Inhaltsverzeichnis:
MehrAGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom 21.10.2013b
AGROPLUS Buchhaltung Daten-Server und Sicherheitskopie Version vom 21.10.2013b 3a) Der Daten-Server Modus und der Tresor Der Daten-Server ist eine Betriebsart welche dem Nutzer eine grosse Flexibilität
MehrFerienakademie 2009. Programmierkonzepte für Multi-Core Rechner. Tools: Profiler
Ferienakademie 2009 Programmierkonzepte für Multi-Core Rechner Tools: Profiler Gliederung Einführung Aufgaben eines Profilers Techniken von Profilern Code Instrumentation Instruction Simulation Hardware
MehrVersion smarter mobile(zu finden unter Einstellungen, Siehe Bild) : Gerät/Typ(z.B. Panasonic Toughbook, Ipad Air, Handy Samsung S1):
Supportanfrage ESN Bitte füllen Sie zu jeder Supportanfrage diese Vorlage aus. Sie helfen uns damit, Ihre Anfrage kompetent und schnell beantworten zu können. Verwenden Sie für jedes einzelne Thema jeweils
MehrAnleitung zur Verwendung der VVW-Word-Vorlagen
Anleitung zur Verwendung der VVW-Word-Vorlagen v1.0. Jun-15 1 1 Vorwort Sehr geehrte Autorinnen und Autoren, wir haben für Sie eine Dokumentenvorlage für Microsoft Word entwickelt, um Ihnen die strukturierte
MehrINSTALLATION STHENO/PRO V1.2. Installation
INSTALLATION In diesem Kapitel wird beschrieben, wie Sie STHENO/PRO, STHENO/PRO mit dem Lizenzserver und STHENO/PRO im integrierten Modus von Pro/ENGINEER installieren. Hinweise zur... 14 STHENO/PRO installieren...
MehrPTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN
PTV VISWALK TIPPS UND TRICKS PTV VISWALK TIPPS UND TRICKS: VERWENDUNG DICHTEBASIERTER TEILROUTEN Karlsruhe, April 2015 Verwendung dichte-basierter Teilrouten Stellen Sie sich vor, in einem belebten Gebäude,
MehrDie Statistiken von SiMedia
Die Statistiken von SiMedia Unsere Statistiken sind unter folgender Adresse erreichbar: http://stats.simedia.info Kategorie Titel Einfach Erweitert Übersicht Datum und Zeit Inhalt Besucher-Demographie
MehrDas Handbuch zu Simond. Peter H. Grasch
Peter H. Grasch 2 Inhaltsverzeichnis 1 Einführung 6 2 Simond verwenden 7 2.1 Benutzereinrichtung.................................... 7 2.2 Netzwerkeinrichtung.................................... 9 2.3
Mehrecaros2 - Accountmanager
ecaros2 - Accountmanager procar informatik AG 1 Stand: FS 09/2012 Inhaltsverzeichnis 1 Aufruf des ecaros2-accountmanager...3 2 Bedienung Accountmanager...4 procar informatik AG 2 Stand: FS 09/2012 1 Aufruf
MehrARCO SQL T11 - Neue Funktionalitäten
ARCO SQL T11 - Neue Funktionalitäten 16.03.2016 / ABACUS Business Solutions AG Informationen zu diesem Dokument Einleitung Die hier beschriebenen Neuigkeiten betreffen Änderungen seit der letzten Version
MehrNutzung von GiS BasePac 8 im Netzwerk
Allgemeines Grundsätzlich kann das GiS BasePac Programm in allen Netzwerken eingesetzt werden, die Verbindungen als Laufwerk zu lassen (alle WINDOWS Versionen). Die GiS Software unterstützt nur den Zugriff
MehrLizenz-Server überwachen
Einsteiger Fortgeschrittene Profis markus.meinl@m-quest.ch Version 1.0 Voraussetzungen für diesen Workshop 1. Die M-Quest Suite 2005-M oder höher ist auf diesem Rechner installiert 2. Das Produkt M-Lock
MehrSFTP SCP - Synology Wiki
1 of 6 25.07.2009 07:43 SFTP SCP Aus Synology Wiki Inhaltsverzeichnis 1 Einleitung 1.1 Grundsätzliches 2 Voraussetzungen 2.1 Allgemein 2.2 für SFTP und SCP 3 Installation 3.1 Welche openssl Version 3.2
MehrKonzepte der Informatik
Konzepte der Informatik Vorkurs Informatik zum WS 2011/2012 26.09. - 30.09.2011 17.10. - 21.10.2011 Dr. Werner Struckmann / Christoph Peltz Stark angelehnt an Kapitel 1 aus "Abenteuer Informatik" von Jens
MehrInstallation LehrerConsole (für Version 6.2)
Dr. Kaiser Systemhaus GmbH Köpenicker Straße 325 12555 Berlin Telefon: (0 30) 65 76 22 36 Telefax: (0 30) 65 76 22 38 E-Mail: info@dr-kaiser.de Internet: www.dr-kaiser.de Installation LehrerConsole (für
MehrInstallationsanleitung Sander und Doll Mobilaufmaß. Stand 22.04.2003
Installationsanleitung Sander und Doll Mobilaufmaß Stand 22.04.2003 Sander und Doll AG Installationsanleitung Sander und Doll Mobilaufmaß Inhalt 1 Voraussetzungen...1 2 ActiveSync...1 2.1 Systemanforderungen...1
MehrAnwendungshinweise zur Anwendung der Soziometrie
Anwendungshinweise zur Anwendung der Soziometrie Einführung Die Soziometrie ist ein Verfahren, welches sich besonders gut dafür eignet, Beziehungen zwischen Mitgliedern einer Gruppe darzustellen. Das Verfahren
Mehr1 Einleitung. Lernziele. automatische Antworten bei Abwesenheit senden. Einstellungen für automatische Antworten Lerndauer. 4 Minuten.
1 Einleitung Lernziele automatische Antworten bei Abwesenheit senden Einstellungen für automatische Antworten Lerndauer 4 Minuten Seite 1 von 18 2 Antworten bei Abwesenheit senden» Outlook kann während
MehrErweiterung AE WWS Lite Win: AES Security Verschlüsselung
Erweiterung AE WWS Lite Win: AES Security Verschlüsselung Handbuch und Dokumentation Beschreibung ab Vers. 1.13.5 Am Güterbahnhof 15 D-31303 Burgdorf Tel: +49 5136 802421 Fax: +49 5136 9776368 Seite 1
MehrIn diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.
In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access Die Grundlagen der Datenbanken kurspc15 Inhaltsverzeichnis Access... Fehler! Textmarke nicht
Mehr1 topologisches Sortieren
Wolfgang Hönig / Andreas Ecke WS 09/0 topologisches Sortieren. Überblick. Solange noch Knoten vorhanden: a) Suche Knoten v, zu dem keine Kante führt (Falls nicht vorhanden keine topologische Sortierung
Mehr! Tipps und Tricks Sie können den Windows Explorer am einfachsten mit der Tastenkombination Windows+ E öffnen.
Bereiche im Explorer-Fenster In dieser Lektion lernen Sie den Aufbau des Windows Explorers kennen. Der Windows Explorer ist auch in Windows 7 weiterhin der zentrale Punkt, wenn es um die Verwaltung von
Mehrteamsync Kurzanleitung
1 teamsync Kurzanleitung Version 4.0-19. November 2012 2 1 Einleitung Mit teamsync können Sie die Produkte teamspace und projectfacts mit Microsoft Outlook synchronisieren.laden Sie sich teamsync hier
MehrProduktschulung WinDachJournal
Produktschulung WinDachJournal Codex GmbH Stand 2009 Inhaltsverzeichnis Einleitung... 3 Starten des Programms... 4 Erfassen von Notizen in WinJournal... 6 Einfügen von vorgefertigten Objekten in WinJournal...
MehrInformatik Kurs Simulation. Hilfe für den Consideo Modeler
Hilfe für den Consideo Modeler Consideo stellt Schulen den Modeler kostenlos zur Verfügung. Wenden Sie sich an: http://consideo-modeler.de/ Der Modeler ist ein Werkzeug, das nicht für schulische Zwecke
Mehrit Symbiose Software Installation 1 Installationsbeschreibung für alle Series 60 (S60) Geräte - im speziellen Nokia S60-3rd Edition Stand März 2007
Software Installation 1 1. Softwareempfang auf Ihrem Endgerät Nach erfolgter Freischaltung in unserem System erhalten Sie von uns 3 SMS zugesandt. Folgende Mitteilungen werden an Ihr Endgerät zum Versandt
MehrAngaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7
Tutorial: Wie kann ich Kontakte erfassen In myfactory können Sie Kontakte erfassen. Unter einem Kontakt versteht man einen Datensatz, der sich auf eine Tätigkeit im Zusammenhang mit einer Adresse bezieht.
MehrHandbuch für Gründer. Daniela Richter, Marco Habschick. Stand: 21.02.2013. Verbundpartner:
Daniela Richter, Marco Habschick Stand: 21.02.2013 Verbundpartner: Inhaltsverzeichnis 1. Allgemeines...3 2. Zugang zur Gründungswerkstatt...4 3. Login...5 4. Meine Werkstatt...6 5. Businessplan...7 5.1.
MehrWindows Server 2012 RC2 konfigurieren
Windows Server 2012 RC2 konfigurieren Kurzanleitung um einen Windows Server 2012 als Primären Domänencontroller einzurichten. Vorbereitung und Voraussetzungen In NT 4 Zeiten, konnte man bei der Installation
MehrAuto-Provisionierung tiptel 31x0 mit Yeastar MyPBX
Allgemeines Auto-Provisionierung tiptel 31x0 mit Yeastar MyPBX Stand 19.09.2014 Die Yeastar MyPBX Telefonanlagen unterstützen die automatische Konfiguration der tiptel 3110, tiptel 3120 und tiptel 3130
MehrLeitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0)
Leitfaden zur ersten Nutzung der R FOM Portable-Version für Windows (Version 1.0) Peter Koos 03. Dezember 2015 0 Inhaltsverzeichnis 1 Voraussetzung... 3 2 Hintergrundinformationen... 3 2.1 Installationsarten...
MehrInstallation OMNIKEY 3121 USB
Installation OMNIKEY 3121 USB Vorbereitungen Installation PC/SC Treiber CT-API Treiber Einstellungen in Starke Praxis Testen des Kartenlesegeräts Vorbereitungen Bevor Sie Änderungen am System vornehmen,
MehrTYPO3 Tipps und Tricks
TYPO3 Tipps und Tricks Seiten als Shortcut. Hiermit ist gemeint, dass eine Oberseite direkt auf eine tiefere Unterseite verlinkt. Dies kann bei Themen ohne gesonderte Übersichtsseite hilfreich sein. Zum
MehrS/W mit PhotoLine. Inhaltsverzeichnis. PhotoLine
PhotoLine S/W mit PhotoLine Erstellt mit Version 16.11 Ich liebe Schwarzweiß-Bilder und schaue mir neidisch die Meisterwerke an, die andere Fotografen zustande bringen. Schon lange versuche ich, auch so
MehrKompetitive Analysen von Online-Algorithmen
Kompetitive Analysen von Online-Algorithmen jonas echterhoff 16. Juli 004 1 Einführung 1.1 Terminologie Online-Algorithmen sind Algorithmen, die Probleme lösen sollen, bei denen Entscheidungen getroffen
MehrBedienungsanleitung. Stand: 26.05.2011. Copyright 2011 by GEVITAS GmbH www.gevitas.de
GEVITAS-Sync Bedienungsanleitung Stand: 26.05.2011 Copyright 2011 by GEVITAS GmbH www.gevitas.de Inhalt 1. Einleitung... 3 1.1. Installation... 3 1.2. Zugriffsrechte... 3 1.3. Starten... 4 1.4. Die Menü-Leiste...
Mehr