A method and system for profiling a program using periodic trace sampling
is provided. During the execution of the program, sample-based profiling
of the executing program is performed--for a predetermined period, a
profiler performs trace processing for the program, after which the
profiler pauses and does not perform trace processing for a predetermined
period. The periods controlling the profiler may be selected by a user,
and the periods may be measured by temporal or non-temporal metrics. The
profiler cycles through these periods, during which selected events are
processed to generate a profile of the execution flows within the program.
For each sample period, a tree data structure is generated in which nodes
of the tree data structure represent the routines of the program that
execute during the sample period, as may be indicated by entry and exit
events caused by the execution of the routines. When the execution of the
program is complete, the tree data structures from each sample period are
merged into a resulting tree data structure.
Μια μέθοδος και ένα σύστημα για ένα πρόγραμμα που χρησιμοποιεί την περιοδική δειγματοληψία ιχνών παρέχονται. Κατά τη διάρκεια της εκτέλεσης του προγράμματος, η δείγμα-βασισμένη στον σκιαγράφηση του προγράμματος εκτέλεσης εκτελείται -- για μια προκαθορισμένη περίοδο, ένα profiler εκτελεί την επεξεργασία ιχνών για το πρόγραμμα, και μετά το profiler σταματά και δεν εκτελεί την επεξεργασία ιχνών για μια προκαθορισμένη περίοδο. Οι περίοδοι που ελέγχουν το profiler μπορούν να επιλεχτούν από έναν χρήστη, και οι περίοδοι μπορούν να μετρηθούν από τις χρονικές ή μη-χρονικές μετρικές. Οι κύκλοι profiler μέσω αυτών των περιόδων, κατά τη διάρκεια των οποίων τα επιλεγμένα γεγονότα υποβάλλονται σε επεξεργασία για να παραγάγουν ένα σχεδιάγραμμα της εκτέλεσης ρέουν στα πλαίσια του προγράμματος. Για κάθε περίοδο δειγμάτων, μια δομή δεδομένων δέντρων παράγεται στην οποία οι κόμβοι της δομής δεδομένων δέντρων αντιπροσωπεύουν τις ρουτίνες του προγράμματος που εκτελούν κατά τη διάρκεια της περιόδου δειγμάτων, όπως μπορούν να υποδειχθούν από τα γεγονότα εισόδων και εξόδων που προκαλούνται από την εκτέλεση των ρουτινών. Όταν η εκτέλεση του προγράμματος είναι πλήρης, οι δομές δεδομένων δέντρων από κάθε περίοδο δειγμάτων συγχωνεύονται σε μια προκύπτουσα δομή δεδομένων δέντρων.