CN105339901A - Tracer list for automatically controlling tracer behavior - Google Patents

Tracer list for automatically controlling tracer behavior Download PDF

Info

Publication number
CN105339901A
CN105339901A CN201480035488.XA CN201480035488A CN105339901A CN 105339901 A CN105339901 A CN 105339901A CN 201480035488 A CN201480035488 A CN 201480035488A CN 105339901 A CN105339901 A CN 105339901A
Authority
CN
China
Prior art keywords
function
tracker
tracks
methods
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201480035488.XA
Other languages
Chinese (zh)
Inventor
A·古纳雷斯
C·W·弗雷泽
R·加陶林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Concurix Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/867,057 external-priority patent/US20130283242A1/en
Priority claimed from US13/916,566 external-priority patent/US20140317604A1/en
Priority claimed from US13/916,561 external-priority patent/US9021445B2/en
Priority claimed from US13/916,563 external-priority patent/US20140317603A1/en
Priority claimed from US13/916,571 external-priority patent/US8978016B2/en
Priority claimed from US13/916,568 external-priority patent/US8966452B2/en
Application filed by Concurix Corp filed Critical Concurix Corp
Publication of CN105339901A publication Critical patent/CN105339901A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/81Threshold
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/865Monitoring of software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/88Monitoring involving counting

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

A tracing system may use an evaluation mechanism to determine which functions to include or exclude during tracing. The architecture may evaluate functions when functions or groups of functions may be loaded for execution, as well as each time a function may be encountered. The evaluation mechanism may use whitelists, blacklists, and various expressions to identify which functions to trace and which functions to exclude. The evaluation mechanism may evaluate an expression that may identify specific conditions under which a function may be traced or not traced. The tracing mechanism may create wrapping functions for each function, including callback functions.

Description

For automatically controlling the tracker list of tracker behavior
The cross reference of related application
The rights and interests of applying for below patent application claims and right of priority: in the U.S. Patent Application Serial Number 13/867 being entitled as " TracingClosuresinaCallbackEnvironment (the tracking closure in readjustment environment) " that on April 20th, 2014 submits to, 057, in the U.S. Patent Application Serial Number 13/916 being entitled as " TracerListforAutomaticallyControllingTracerBehavior (for automatically controlling the tracker list of tracker behavior) " that on June 12nd, 2013 submits to, 561, in the U.S. Patent Application Serial Number 13/916 being entitled as " MultipleTracerConfigurationsAppliedonaFunction-by-Functi onBasis (by multiple tracker configurations that functional foundations is applied) " that on June 12nd, 2013 submits to, 563, in on June 12nd, 2013 submit to be entitled as " RealTimeAnalysisofTracerSummariestoChangeTracerBehavior (and to tracker summary real-time follow-up to change tracker behavior) " U.S. Patent Application Serial Number 13/916,566, in the U.S. Patent Application Serial Number 13/916 being entitled as " UserInteractionAnalysisofTracerDataforConfiguringanAppli cationTracer (for configuring the user interactions analysis of the tracker data of application tracking device) " that on June 12nd, 2013 submits to, 568, in the U.S. Patent Application Serial Number 13/916 being entitled as " ErrorListandBugReportAnalysisforConfiguringanApplication (for configuring mistake list and the bug report analysis of application) " that on June 12nd, 2013 submits to, 571, its whole content is clearly included in this by quoting.
Background
Application tracking is a kind of mechanism understood and monitor application.Following the tracks of (tracing) is a kind of mechanism of collecting data when applying and performing.In some use, application tracking can be used to the lasting execution monitoring application.In other uses, application tracking can the person of being developed be used for understanding application, identifying any problem and improve this application.
General introduction
Robotization tracker can create wrapper functions for each function (comprise and can be used as the call back function that independent variable comes and goes given function transmission) in application.Wrapper functions can comprise the tracking data that can be used to the topology generating this application, and can be used to other tracking data of performance measurement.In many cases, wrapper functions can be at least part of isomorphism about packaged intrinsic function.
Tracker can use a kind of evaluation mechanism to determine will comprise or get rid of which function during following the tracks of.This framework can be able to be loaded for valuation functions during execution and when each function can be encountered at function or group of functions.Evaluation mechanism can use white list, blacklist and various expression formula to identify and will follow the tracks of which function and will get rid of which function.Evaluation mechanism can assess an expression formula, and this expression formula can identify the actual conditions that function can be tracked or not tracked.Follow-up mechanism can be each function (comprising call back function) and creates wrapper functions.
Tracker can use different configuration to follow the tracks of each function differently.A kind of configuration can be arrange group, and this arranges group definable will collect for which data element, and can summarize, store and show the mode of these data in some cases.Example arrangement can comprise debugging configuration, performance optimization configuration, monitored for prolonged periods of time configure and other.Tracker can follow the tracks of a group of functions with a configuration, and uses another group of functions that a different configuration is followed the tracks of in same application.
The real-time analysis of tracking data can identify the function that can strengthen or reduce the tracking to it.The tracker of generating function DBMS can have the collector of summary data.The potential change following the tracks of configuration is identified so that the grade determined each function and whether matching on the impact through summary data with this function is tracked through summary data by analyzing.The tracking with those functions significantly do not contributed can be reduced, the tracking with those functions significantly contributed can be strengthened simultaneously.Can perform in real time in some instances the analysis through summary data, while application performs, change the data of collecting to make tracker.
Tracker can based on user how consumption tracking result and being updated comprise, get rid of or the tracking configuration of Modification growth function.User and figured mutual, which function can be indicated alternately may to be interested and which function may not be interested to the inspection of data and other.User's alternately can classification by use, such as during debugging, performance test and persistent surveillance, and multiple user and Same Function, storehouse, module, source code file or other group of functions can be combined alternately predict the interest of user to function.
Other database of the problem of the report of error log, bug and mark tracker system can be excavated to determine tracker can how mutual with given function, module or other group of functions.Based on these reports, tracker can be configured to avoid some function or follow the tracks of these functions by ad hoc fashion.In some cases, tracker can be configured to limit to the tracking of some parameter or have other and limit any known conditions avoided pitfalls.
There is provided this general introduction to introduce some concepts that will further describe in the following detailed description in simplified form.Content of the present invention is not intended to the key feature or the essential feature that identify claimed subject, is not intended to the scope for limiting claimed subject yet.
Accompanying drawing is sketched
In the accompanying drawings:
Fig. 1 illustrates for using tracking closure to follow the tracks of the diagram of the embodiment of the method for application.
Fig. 2 illustrates to have to use to follow the tracks of closure to follow the tracks of the diagram of the embodiment of the network environment of the equipment of application.
Fig. 3 is the flow process diagram of the embodiment illustrated for performing the method with the utility function following the tracks of closure.
Fig. 4 is the diagram of the embodiment that the system with tracker list is shown.
Fig. 5 is the diagram of the embodiment that the system with the tracker list that can be updated is shown.
Fig. 6 is the diagram of the embodiment that the system with user interactions analyzer is shown.
Fig. 7 is the diagram that the embodiment with the system of following the tracks of list manager is shown.
Fig. 8 illustrates for illustrating in the flow process of the embodiment compiling in computing environment the method using tracker list.
Fig. 9 illustrates for illustrating in the flow process of the embodiment explaining in computing environment the method using tracker list.
Figure 10 illustrates for analyzing tracker data to adjust the flow process diagram of the embodiment of TRL tracing level method for distinguishing.
Figure 11 illustrates for analyzing user interactions to adjust the flow process diagram of the embodiment of the method for following the tracks of configuration.
Figure 12 illustrates the flow process diagram adjusting the embodiment of the method for following the tracks of configuration for mistake in analysis.
Describe in detail
Automatic packaging in readjustment programmed environment
Automated system can check that application or computer program are to identify the function in application.When function is identified, can create tracking closure, this tracking closure is called to tracing function interpolation.Application can recursively, by function be packed by tracking closure, wherein follows the tracks of closure and catches each function and the performance of collecting about this application and topology information.
Readjustment can by many programming languages of using and execution environment wherein, and function can be used as independent variable to function with from function passes, and function can be used as the attribute of function, memory object or other element is added.In this environment, automated system can identify each function and pack each function in tracking closure.
Tracking closure can comprise information that can be useful for the performance monitoring applied.This information can comprise the start and stop time of function, the resource that function consumes, the work that function realizes, performed refuse collection or other parameter.The resource that function consumes can be processor resource, memory resource, Internet resources, peripherals resource or other resource.An example of performance metric can be the workload that time per unit completes, and it can reflect " busy degree " or the efficiency of specific function.
Follow the tracks of closure and can comprise caller information.Caller information can comprise the identifier of the higher level function that may have invoked packaged function.This information also can be added into trace information from call stack retrieval.The topology of application is bonded together by each function this application called and creates.
Follow the tracks of the projection (projection) that closure can comprise each attribute of packaged function.In many cases, packaged function can have each attribute associated with it, and by the attribute of packaged function is projected to tracking wrapper, any downstream function correctly can process this packaged function.
Can operationally (runtime) use robotization tracker to identify those functions when function is called, pack described function by tracking closure and collect tracking data when applying and performing.This system can be followed the tracks of may interested each function or subsets of functions, and can application tracking closure and without the need to making programmer revise its code automatically.
Robotization tracker can be implemented as storehouse or code library.Robotization tracker operationally can check application, applies each tracker closure, and this application is performed.Tracker closure can collect the information that can be passed to tracker manager, and tracker manager can process these data and store these data for visual or various analysis.
Robotization tracker can construct wherein in any language of closure or execution environment and realize.Some language can support closure by explicitly, and other Languages can allow to use various programming constructs to realize implicit expression closure.Wherein robotization tracker can be comprised Node.JS and other programming language and framework by the example used.
For automatically controlling the tracker list of tracker behavior
Robotization tracker can assess which function will be followed the tracks of and which function is not followed the tracks of.Such system can be followed the tracks of a specific function and do not follow the tracks of Same Function under a different condition set under a set of circumstances.Evaluation mechanism can comprise white list, blacklist or any expression formula, and this any expression formula can be evaluated with the given example determining whether tracking one function.
When a function can be loaded before execution and when a function can be called, tracker can monitor.Evaluation mechanism can perform to determine whether to follow the tracks of this given function before each function call.When this function can be selected to follow the tracks of, tracker can monitor the execution of this function and collect the data of this function.When this function can not be selected to follow the tracks of, this function can be performed and without the need to tracker.
In many examples, tracking operation can add considerable expense to the execution of application.In some instances, follow the tracks of comparable tracked application and consume the even more resource of 2x, 5x, 10x.Follow the tracks of and also can generate mass data, these data may be difficult to transmit or otherwise process.In a kind of use scenes, by from tracking elimination one subsets of functions, tracker can run and without the need to consuming excessive resource.
In another use scenes, tracking can be applied to user may interested subsets of functions.Such as, developer may wish only to follow the tracks of developer in application may be current just to the subset of its work, but may not wish to check the data from the carefree other parts of developer's possibility in this application.In such examples, developer can specify and only follow the tracks of interested function, and gets rid of the uninterested part of possibility.
In another use scenes, tracking can be opened based on external factor or close.Such as, tracking can be closed or limit during the high capacity period or when possibility expected performance, but follows the tracks of and can be expanded during the slower period when more multiple resource possibility is available.
Configuring by multiple trackers that function rank is applied
Tracker system can have multiple tracker configurations that can be applied to different function when following the tracks of application.The configuration that a configuration can be applied to a function and separate one by tracker system is applied to another function, and what data of wherein said configuration definition can be collected and how those data can be processed, store and visual representation.
Described configuration can reflect the different use-cases of tracker.Such as, a configuration can be debugging configuration, and this debugging configuration can be collected and be determined to apply the useful data that can how to work for programmer.Second configuration can be performance test configuration, and this performance test configuration can collect a different pieces of information set that can identify bottleneck in application or other performance factor.3rd configuration can be monitor configuration, and this supervision configuration can collect the another data acquisition that can be used to the long-term behaviour monitoring yield-power application.
In each case, configuration can reflect the particular data set that can be collected.In certain embodiments, configuration also can comprise the mechanism for summarizing, checking or otherwise process data into the statistics representing these data.Configuration also can comprise visual, Output of for ms or user and can be used to consume and the set of other mechanism of check result.
Tracker can apply different configuration in single application.Such as, tracker can may interested especially particular module or group of functions by debugging that configuration is applied in detail, and light weight debugging can be configured the survival function that be applied in this application.Result can comprise detailed data and the analysis of interested function, together with other the more limited result from other function.
To tracker general introduction real-time analysis to change tracker behavior
Tracker system carrys out valuation functions for the tracking increased or reduce by the contribution of valuation functions to general introduction statistics.When function has very little impact to some statistics, the tracking of those functions can be minimized or reduce.When function has considerable influence to some statistics, the tracking of those functions can be enhanced or increase.
Many trackers can be collected raw data and are the statistics representing raw data by raw data general introduction (summarize).Statistics can be stored subsequently, process, visual or otherwise consumed, but original underlying data can be dropped.
The collection of original underlying data can the performance of negative effect application, thus causes application run slowly or consume ample resources.In many cases, follow the tracks of and can add instruction more than 5 to 10 times to single function, and detection application may shockingly costliness completely.
Tracker can use a mechanism to determine which function can tracked and configuration for following the tracks of each function.While application performs and while tracking application, this mechanism can be updated.This system can make tracker while application performs, dynamically can change behavior.
The tracking of function can change by some different modes.A change can be increase or reduce the data volume of collecting for specific function.Such as, be that the data external member that a function is collected can comprise the data of resource-related data point, performance-related data point, memory object data point or other type.By the data volume that restriction is collected for specific function, the tracking expense of this function can be minimized.
Another change can be the frequency increasing or reduce Data Collection.Many trackers can periodically be collected and summary data at interval, and some embodiments can limit some data point that will be collected in sample (it can be less than each interval) on basis.
Tracing level timing really to be increased when function is just experiencing light weight tracing level and making, may retardation time be had in the data of collecting this function.During light weight tracking time section, some data item may not be collected.Making determination that wider tracking is instructed to and may once-existing section between the time that in fact data can be collected.
The user interactions analysis of tracker data is to configure application tracking device
Tracker can be analyzed with the user interactions of tracker data with to the categorize interests of user to data.The tracing level that those data elements with low user interest can be used as reduction is tracked, and those data elements with high user interest can be tracked at the tracing level promoted.
Tracker can collect the visual of multiple type or other user interactions analyzed, and can assemble with multiple user interactions of the tracking data from same application and assemble and multiple different application mutual.
User interactions deducibility is to the relative interest of specific function or group of functions.Such as group of functions is punctured into visual in little expression such can be alternately instruction low user interest a mutual example.Wherein user gos deep into data set and can indicate high user interest alternately with another checking the details of a group of functions.
When function or group of functions can be identified as high or low interest level, be adjustable to correspondingly collect and summary data to the tracking of function.Can be can analyzing the tracker list or other data set that upgrade after user interactions for transmitting a mechanism of these identifiers.
User can change using a model of these data based on user the interest levels of some function.The user that just may debug application can some function of detailed inspection, but can when carrying out performance and being tuning or to data certain other use time use this data by a different modes.
Tracker is by clear and definite or hiding the making for considering user interactions to data.In some cases, classification or the classification of the current active of user ID reflection user can be inquired clearly.In other cases, the activity of user can by performed analysis, the visual type of probing into or other movable hint.
Many embodiments can comprise users classification that can be relevant with the target of user and tracker data interaction or object.Users classification can be the general type of the use to data, such as debugging, the tuning or monitored for prolonged periods of time of performance.In some cases, classification can be the use for specific project or the data for a team or company, and it can have the specific type of interaction that can be applied to this project, team, company or other grouping.
In some cases, classification can be to be classified by the specialization of acquistion or enhancing in time.Create new classification by following action: identify the user interactions be associated with this classification, identify preference for each in each function or group of functions or interest levels with user interactions described in post analysis.Existing classification performs additional analysis to strengthen by adding additional user interactions in this classification subsequently.
The classification of a given user, user preference can be used as initial configuration or the analysis mechanisms of tracker.Initial configuration can take on starting point, and user can from this starting point modification track device to strengthen or to reduce the activity about specific function.
For configuring error listing and the bug report analysis of application tracking device
Tracker system can be configured based on the mistake that may run at previous tracker run duration or bug.Each database can comprise error reporting, bug is reported or other is abnormal, and they analyzedly can determine to follow the tracks of the condition that can be suspended or perform by ad hoc fashion.In some cases, follow the tracks of and can perform by the mode be reduced, and in other cases, tracking may for specific function or group of functions at all not tracked.
Tracker system can use various mechanism to determine will be followed the tracks of and how follow the tracks of those functions for which function.To an input of this system can be mistake, bug report and at the collectable out of Memory of previous run duration.Generally speaking, mistake or bug report can indicators track operation may be failed condition, and therefore follow the tracks of can be reduced when supervise is attempted or eliminate.Such system can be collected in multiple uses of system and can an example of the system of acquistion or adaptation automatically when analyzing.
Tracker system can collect bug or mistake also can by those logouts in a database.Database can be any type of memory mechanism, can inquire about this memory mechanism to determine whether follow the tracks of this function and how can dispose tracking for this function when running into function.
In some cases, mistake or bug report indicators track can not may press the special characteristic or condition of expecting and operating.In some cases, tracker system still may can follow the tracks of a function, but according to not causing the mode of error condition.In some cases, mistake or bug report may not have enough information or may indicate for given function tracking may not be all just suitable.
Mistake or bug report can identify may failed specific function or group of functions to its tracking.Group of functions can be defined in module, file, storehouse, service or other group of functions.
Run through this instructions and claims, term " explorer " (profiler), " tracker " and " prospecting tools (instrumentation) " are used interchangeably.These terms refer to can apply be performed time image data any mechanism.In classics definition, " prospecting tools " can refer to can be inserted into executable code and thus change generation method stub (stub), hook (hook) or other data collecting mechanisms of this executable code, and " explorer " or " tracker " can refer to the data collecting mechanism of immutable executable code classically.The use of any one in these terms and derivative thereof all can be contained or imply each other.Such as, use the Data Collection of " tracker " that the non-contact data in the classical meaning of " tracker " can be used to collect and can the Data Collection of classical meaning of reformed " prospecting tools " perform with wherein executable code.Similarly, the data of being collected by " prospecting tools " can comprise the Data Collection using non-contact data collection mechanism.
In addition, the data of being collected by " detecting ", " tracking " and " prospecting tools " can comprise the data of any type that can be collected, and comprise the data relevant with performance in such as processing time, handling capacity, performance counter etc. and so on.The data collected can comprise function name, the parameter of transmission, the message of memory object name and content, transmission, message content, register setting, content of registers, error flags, interruption or any other parameter relevant with just tracked application or other collectable data.
Run through this instructions and claims, term " execution environment " can be used to the support software of any type referred to for performing application.One example of execution environment is operating system.In some illustrate, " execution environment " can be illustrated as separating with operating system.This may be to exemplify as applying the virtual machine providing each support function, such as process virtual machine.In other embodiments, virtual machine can be the system virtual machine that can comprise its oneself domestic os and can simulate whole computer system.Run through this instructions and claims, term " execution environment " comprises operating system and can have or can not have the other system of " virtual machine " or other support softwares that can easily identify.
Run through this instructions and claims, term " application " is used to refer to generation can any combination of software and hardware product of carry out desired function.In some cases, application can be the single software program with hardware platform operation.Some application can use multiple component software, each component software can be write with different language or can perform in different hardware or software execution environment.In some cases, these application can disperse across multiple equipment and can use the software and hardware assembly that can be connected by network or other communication system.
Run through this instructions, run through the description to accompanying drawing, identical Reference numeral represents identical element.
In the present specification and claims, multiple processor is comprised to quoting of " processor ".In some cases, in fact the process that can be performed by " processor " can be performed by the multiple processors on same equipment or on distinct device.Be in the object of this instructions and claims, multiple processors that should comprise and may be positioned on same equipment or on distinct device are quoted to any of " processor ", unless clearly specified in addition.
When element is called as " being connected " or " being coupled ", these elements can be connected directly or be coupled, or also can there is one or more neutral element.On the contrary, when element be called as be " directly connected " or " direct-coupling " time, there is not neutral element.
This theme can be embodied as equipment, system, method and/or computer program.Therefore, partly or entirely can the specializing with hardware and/or software (comprising firmware, resident software, microcode, state machine, gate array etc.) of this theme.In addition, this theme can adopt computing machine to use or the form of computer program on computer-readable recording medium, has included the computing machine used together for instruction execution system or combined command executive system and can use or computer-readable program code in medium.In the context of this document, computing machine can use or computer-readable medium can be can comprise, store, communicate, propagate or any medium that transmission procedure uses together for instruction execution system, device or equipment use or combined command executive system, device or equipment.
Computing machine can use or computer-readable medium can be, such as but not limited to, electricity, magnetic, optical, electrical magnetic, infrared or semiconductor system, device, equipment or propagation medium.Exemplarily unrestricted, computer-readable medium can comprise computer-readable storage medium and communication media.
Computer-readable storage medium comprises the volatibility and non-volatile, removable and irremovable medium that realize for any method or technology that store the information such as such as computer-readable instruction, data structure, program module or other data.Computer-readable storage medium comprises, but be not limited to, RAM, ROM, EEPROM, flash memory or other memory technologies, CD-ROM, digital versatile disc (DVD) or other optical disc storage, tape cassete, tape, disk storage or other magnetic storage apparatus, maybe can be used for storing information needed and any other medium can accessed by instruction execution system.Note, computing machine can use or computer-readable medium can be it prints have the paper of program or another suitable medium, because program can via such as catching electronically the optical scanning of paper or other media, be compiled if necessary subsequently, explain, or with other suitable mode process, and be stored in subsequently in computer memory.
When specializing in the general context of this theme at computer executable instructions, this embodiment can comprise the program module performed by one or more system, computing machine or other equipment.Generally speaking, program module comprises the routine, program, object, assembly, data structure etc. that perform particular task or realize particular abstract data type.Usually, the function of program module can carry out combining or distributing in various embodiments as required.
Fig. 1 is the diagram of the embodiment 100 that a kind of tracking is shown, this tracking automatically can carry out wrapper functions by tracker closure, performs packaged function subsequently to gather tracker data when applying and performing.
Embodiment 100 shows and can be used to automatic detection and perform application to collect the wide in range view of the method for tracker data.Tracker data can be processed to generate various analysis subsequently, such as data visual.
The method of embodiment 100 can start from the routine of application 102 and analytical function 104.When each function can be encountered, tracker closure 110 can encapsulate function 108.Tracker closure 110 can comprise the function for data capture 112 and data transmission 114.
Packaged function 108 can be performed 116, and data capture 112 and data transmit 114 assemblies tracker data can be sent to data acquisition unit 120.Analysis engine 122 in real time or can analyze tracker data to produce various analysis after a while, comprises visual 124 or other analysis.
Tracker storehouse 106 can comprise can catch function in application 102 with the executable code of application tracking device closure 110.Tracker closure 110 can be that a kind of function 108 that encapsulates is to make the mechanism that the data when function 108 performs can be collected.
In an exemplary embodiment, tracker closure 110 can gather start time, end time, resource consumption data, be passed in function and the object that goes out from function passes and other data various.Based on the type of the analysis that can be performed, tracker closure 110 can have different Data Collection options.In the surveillance for the production of power application 102, tracker closure 110 can have lightweight data collecting amount, and application 102 can have the data on a large scale that can be collected when debugging and develop.
The set of tracker closure 110 available descriptor creates, and described descriptor can be collected when function 108 is called.Descriptor can comprise the identifier of function 108 and call function or other metadata about this function.Descriptor can carry and can be provided to data acquisition unit 120 in tracker closure 110.
Data capture 112 assembly can gather the identification information of each function.Identification information can comprise developer can be helped to identify quoting of just invoked function, and it can comprise library name, function name or other designator.In certain embodiments, line number can be comprised carry out precise marking function call and may be derived from where in program.This information may be useful when the program code that mapping function calls.
Function identifier can comprise the unique identifier of each example for function call.Some functions can be called very continually, and some embodiments can comprise globally unique identifier (GUID) for each separate instance of function call or other identifier.Other embodiment can not comprise unique identifier, but can comprise other identifier various.
In certain embodiments, call stack trace information can be included by data capture 112 assembly.Call stack trace information can comprise the identifier of the function that have invoked function 108.When call function metadata can be gathered by tracker closure 110, function call link can be got up for various analysis by analyzer, comprises the visual of the assembly of application, comprises the relation between each assembly.
Application 120 can perform together with tracker storehouse 106 in execution environment 118.In certain embodiments, execution environment 118 can be the such as virtual machine such as process virtual machine or system virtual machine.In some cases, execution environment 118 can comprise framework, and this framework can process subsets of functions and can work by connected applications 102.Such as, framework can process other function that input/output request maybe can have the high stand-by period, and framework can use readjustment to visit.
Readjustment can be can be used as the executable code that independent variable (argument) is delivered to another code, and this another code can be desirably in and perform this independent variable at one's leisure.Can perform when synchronous readjustment and directly call, and asynchronism callback can be performed afterwards sometime.Readjustment can be supported in many language, comprises C, C++, Pascal, JavaScript, Lua, Python, Perl, PHP, C#, VisualBasic, Smalltalk and other language.In some cases, readjustment can be defined by explicitly and realize, and in other cases, the structure (construct) that can show as readjustment can be simulated or have to readjustment.Useful object-oriented language, functional language, imperative language or other language form realize readjustment.
Readjustment can be designated the function that tracker closure 110 can be used to pack by Function Solution parser 104.Readjustment can be passed to function or minuend returns.Robotization Function Solution parser 104 can detect this function when any function can be called, and packs this function by tracker closure subsequently.
In some cases, robotization Function Solution parser 104 can run into the function having comprised tracker closure 110.Under these circumstances, robotization Function Solution parser 104 can determine that tracker closure 110 has been employed and can not have added another closure.
Run through this instructions and claims, term " wrapper ", " closure ", " encapsulation " and similar terms are used to describe the programming technique that the executable code in wherein application is monitored or manages.Executable code can be utility function or other application code block.Wrapper or closure can be inserted between call function and called function, and himself can call called function.When being inserted in application, tracker closure can perform certain Data Collection in the beginning of function and perform additional data collection at the end of function.
As wrapper function; tracker closure can detect the input and output of packaged function, and to the calling of other function, from this function normally or extremely to exit, input value, output valve, to the change of state or other mutual or behavior of packaged function.The each in the data of these types can be collected in embodiments.
In an example of debugging embodiment, tracker closure can be configured to the operation or mutual caught with specific data type or data object.The data object identified of every type can be accessed or change, and tracker closure can capture events store this event to process.In some cases, flag or condition can be set up, and described flag or condition can suspend the operation of application to make programmer can investigate or inquire about other data object or to check the various states of this application.
In some cases, tracker closure 110 can generate a large amount of tracking data.Some embodiments can pre-service or the data collected by gathering before data are sent to data acquisition unit.Such as, an embodiment can use various time series technology to maintain operation mean value or other general introduction and the statistics of data, subsequently this general introduction and statistics is sent to data acquisition unit 120.In another example, an embodiment can safeguard counter, and described counter is to various event count and with specific interval, Counter Value is sent to data acquisition unit.
In certain embodiments, tracker closure 110 can be applied to subsets of functions.Some embodiments can have configuration file, this configuration file can identify specific function, type function, function class, maybe can be included or get rid of other function definition.Some embodiments can have trial method or conditional expression, and it can be evaluated to identify the function that can be included in analysis or get rid of.
Fig. 2 illustrates to use tracker closure to follow the tracks of the diagram of the embodiment 200 of the assembly of application.Embodiment 200 comprises equipment 202, and described equipment can be the individual equipment that wherein can carry out following the tracks of, and also can be can use remote data capture and analyze the some equipment performing tracking.
Set up standby framework and can gather tracker data, analyze data, and detect with graphic display data or execution bottleneck.
The different assemblies of Data acquisition and issuance function can divide by many equipment framework on different devices.Many equipment framework can be send complicated follow-up service and without the need to a kind of mode of the whole various trace component of installation and maintenance on triangular web.
The diagram of Fig. 2 is illustrated the functional module of system.In some cases, assembly can be the combination of nextport hardware component NextPort, component software or hardware and software.Some assemblies can be application layer software, and other assemblies can be execution environment level assemblies.In some cases, assembly can be compact siro spinning technology to the connection of another assembly, and wherein two or more assemblies operate on single hardware platform.In other cases, the network connection connected by span length's distance is carried out.Each embodiment can use different hardware, software and interconnect architecture to realize described function.
Embodiment 200 exemplifies the equipment 202 can with hardware platform 204 and various component software.Illustrated in the equipment 202 that goes out represent conventional computing device, but other embodiment can have different configuration, framework or assembly.
In many examples, equipment 202 can be server computer.In certain embodiments, equipment 202 still can also be the computing equipment of desk-top computer, laptop computer, net book computing machine, graphic tablet or flat computer, wireless phone, cell phone, game console or any other type.
Hardware platform 204 can comprise processor 208, random access memory 210 and non-volatile memories 212.Hardware platform 204 also can comprise user interface 214 and network interface 216.
Random access memory 210 can be that comprise can by the storage of the data object of processor 208 quick access and executable code.In many examples, random access memory 210 can have high-speed bus storer 210 being connected to processor 208.
Non-volatile memories 212 can be the lasting storage kept after closing device 202.Non-volatile memories 212 can be the memory device of any type, comprises the storage of hard disk, solid-state memory device, tape cassete, optical memory or other types.Non-volatile memories 212 can be read-only or can read/write.In certain embodiments, non-volatile memories 212 can based on cloud, the network storage or other storages by network connected reference.
User interface 214 can be can display translation and receiving from the hardware of any type of the input of user.In many cases, Output Display Unit can be graphics display monitor, but output device can comprise light and other visions export, audio frequency exports, power actuator exports and other output devices.Conventional feed device can comprise keyboard and pointing device, such as mouse, stylus, tracking ball or other pointing devices.Other input equipments can comprise various sensor, comprise biometric input device, Voice & Video input equipment and other sensors.
Network interface 216 can be the connection of any type to another computing machine.In many examples, network interface 216 can be that wired ethernet connects.Other embodiments can comprise the wired or wireless connection based on various communication protocol.
Component software 206 can comprise operating system 218, and various component software and service can operate in this operating system 218.Operating system can provide level of abstraction between executive routine and nextport hardware component NextPort 204, and can comprise the various routine and function that directly communicate with various nextport hardware component NextPort.
The execution of executive system 220 ALARA Principle application 222, this application can be mutual with various storehouse 224 (comprising tracker storehouse 226).Execution environment 220 can be the environment that defined application 222 can be performed wherein, and the example of execution environment can be virtual machine, comprises process virtual machine or system virtual machine.In another example, execution environment can be Integrated Development Environment, and this Integrated Development Environment can have other assembly that display and the editing machine of edit code, compiler, various debugger instrument and programmer use.In certain embodiments, executive system 220 can be the self-organization set of the various assemblies of the execution of promoted application 222 in operating system 218.
In certain embodiments, execution environment 222 can comprise the such as assembly such as interpreter 228 and instant compiler 230.Some environment can have interpreter 228, and this interpreter can process source code or intermediate code to generate machine instruction.In some cases, can generate can by the intermediate code compiled further for interpreter 228.Instant compiler 230 can be the assembly operationally creating machine code from source code or intermediate code.Other embodiment other can have and creates machine code from source code or intermediate code, but can certain time does these compiler before execution.
When application 222 can run together with tracker storehouse 226, the function in application 222 can be packed by tracker closure, and this tracker closure can be collected data and these data are sent to data acquisition unit 232, and this data acquisition unit can store tracker data 234.Analyzer 236 tracker data 234 can be treated to visual, report, warning or other form.
Equipment 202 and the example of each assembly more specifically explained orally in execution environment 220 can represent whole embodiment that wherein can be performed by individual equipment in tracking, Data Collection and analysis.Other embodiment can have multiple equipment, the subset of described multiple equipment executable trace, Data Collection and analytic function.
These equipment connect by network 238.In one embodiment, data acquisition system (DAS) 240 and analyzer system 248 can perform data collection and analysis service respectively.
Data acquisition system (DAS) 240 can be able to the hardware platform 242 similar with hardware platform 204 operate.Data acquisition unit assembly 244 can collect the tracker data 246 of be employed from wherein tracker closure one perhaps many equipment 202.Analyzer system 248 can have hardware platform 250, and this hardware platform can be similar to hardware platform 204, and analyzer 252 and renderer 254 can perform on this hardware platform.
In certain embodiments, individual data collector systems 240 can collect the data from applying multiple equipment that can be tracked thereon.Such embodiment can be that the service that wherein Data acquisition and issuance can be used as multiple client performs.In such embodiments, each client device can have the application 222 that can perform together with tracker storehouse 226, and data can be sent to data acquisition device system 240 by each tracker closure, this data acquisition device system can store the tracker data 246 of collecting from multiple client device.
Some application can perform across multiple equipment.Under these circumstances, each equipment can create tracker closure, and tracker data can be sent to centralized data acquisition unit 244 by this tracker closure.In the embodiment that some are such, tracker data can have synchronizing information or other data, and described synchronizing information or other data can allow data acquisition unit 244 or analyzer system 248 cross-correlation or otherwise the data from multiple source are related to together.Such embodiment can allow report, visual and other analysis, and the data from multiple client device can be incorporated in the single view of application or larger many device systems by it.In such embodiments, implementor name or other identifier can be associated with each data element that can store in tracker data 246.
The example of many apparatus embodiments can be the application of load of dealing with the work on multiple equipment.The HPCC with Message Transmission is an example of this system, and wherein application can across multiple processor and multiple device distribution.It can be another example that many equipment of application realize that the calculating with load balance ability is trooped.Multiple equipment can be used to load of dealing with the work serially, sequentially can be delivered to another equipment from an equipment to make work.Multiple equipment also can be configured to load of dealing with the work concurrently, and wherein independently operating load can be processed dividually by similar devices.
Fig. 3 is the flow process diagram of the embodiment 300 of the method illustrated for being performed application by wrapper functions.The operation of embodiment 300 shows and can comprise in tracker storehouse and the operation that can perform together with application.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 300 shows each function that can identify in application, and application tracking device closure packs the method for this function subsequently.When tracker closure is created, the more contextual data about packaged function can be collected, and function start and at the end of also can image data.Some embodiments can collect data by other point function the term of execution.
Application can be received at frame 302, and this application can start to perform together with tracking storehouse at frame 304.
Function can be identified as at frame 306 and be ready to perform.If this function is not yet packed by tracker closure in frame 308, then start to generate tracker closure at frame 310.
Function identifier can generate at frame 310.Function identifier can comprise the human-readable names of this function.Such as, the function name as defined in source code can be used, and this title can comprise library name or other identifier.
In many examples, analyzer can be attempted splicing or general introduction calling specific function or group of functions.In such embodiments, function identifier can comprise title that can be public for each example of invoked function.One exemplary embodiments can comprise the text name obtained from source code.
In certain embodiments, identifier can comprise the unique identifier of the individual instances for function.Each unique identifier can be stored as the parameter of separating in tracker closure by such embodiment.Unique identifier can use count-up counter, Globally Unique Identifier (GUID) or other technology to create different instances with distinguishing funotion.
Such embodiment can allow various analysis, and described analysis can follow the tracks of each individual instances throughout application of some function.The example of such analysis can comprise bottleneck and detect, analyzes the tracking of individual operating load or other.
Follow the tracks of searching and can perform to identify call function in frame 312 in stack.When call function may be packed by its oneself tracking closure, call function can be designated in call stack a upwards additional level by this searching.This situation comes in handy, because call function identifier can quote the call function in application, instead of is identified as the call function following the tracks of closure.
At frame 314, tracker closure can be created.Follow the tracks of closure and can comprise certain state, described state can comprise function, the identifier of call function and out of Memory.This state can be passed to data acquisition unit when following the tracks of closure and collecting and transmit tracking data.
After closure is followed the tracks of in establishment, this process can be back to frame 306.Present function is packaged in frame 308, then can collect data at frame 316 in the execution beginning of function.
In different embodiments, the data of collecting in frame 316 can comprise different information.In many examples, perform the data of collecting beginning at function and can comprise timestamp.Some embodiments also can comprise the parameter, global variable or other memory object that are passed to function.Some embodiments can catch system state when function starts.The state of other type any that such system state can comprise current processor load, network activity or can exist when function starts to perform.
In certain embodiments, data are sent to data collector by each stage that tracker closure can be able to be collected in data.In the example of embodiment 300, data can be transmitted at the function place of completing.But data are sent to data collector by the part that some embodiments also can be used as frame 316.Such data can perform and transmit concurrently or transmitted before function starts with starting in frame 318 function.
In frame 318, this function can start to perform.This function can be this application by the actual executable code packed by tracker closure.When function performs, if run into any function call at frame 320, then this process frame 306 of getting back to capable of circulation is to pack this function and to start to perform new function.This circulation can recursively perform repeatedly, and wherein each function newly run into is packaged and be added to call stack.
The function run at frame 320 can comprise call back function, and this call back function can be the function being passed to the function be performed or the function returned by the function be performed.
When packaged function completes execution, data set can be collected.This data set can comprise the timestamp when this function of instruction completes.Some embodiments also can comprise the counter of the resource that this function consumes or other designator, be passed to this function or from the state of the data of this function passes, each memory object or other data any.
These data can be passed to data collector at frame 324.In certain embodiments, each pre-service or general introduction can be performed before data are sent to gatherer.
Data can be passed to the data collector that can be positioned on remote equipment.In this case, tracker closure can make the data transmission across a network obtaining data acquisition unit carry out.Some embodiments can comprise local collector, and this local collector can gather the output from multiple tracker closure and by network, data set group is sent to data acquisition unit.
If at frame 326 current function by from another function call, then this process can be back to frame 320 to continue the execution of call function.For the term of execution certain some place call stack in each call function, the circulation getting back to frame 320 may be run into.
When there is not call function in frame 326, this process can be back to frame 306 to start another function performed in this application.
Fig. 4 is the diagram of the embodiment 400 that the system with tracker list is shown.This system can use tracker list comprise for tracking or get rid of function, and different tracing level can be made to be implemented.Shown in assembly can be nextport hardware component NextPort, the component software that operates on a hardware component or certain other configuration.
Embodiment 400 is high-level views of a system, wherein can follow the tracks of application with tracker, and tracker can be configured to have tracker list.The each function of tracker list definable can how tracked, and can make that some function is tracked and other function is not tracked.
Tracker list can take on the mechanism for configuring tracker.Tracker list can configure for dissimilar purposes, such as debugging, performance test and monitored for prolonged periods of time.
Apply and perform by process executable code 402.Perform pointer 404 and can identify the code section that will perform.When running into a function, tracker list 406 can be contrasted and perform and search.This is searched and can determine whether and how follow the tracks of this function.
Tracker list 406 can be the database of any type of the descriptor (and the type of the tracking that will perform in some cases) that wherein can store the function that will follow the tracks of.In many cases, this database can be implemented as list, and it has the expression formula of mark function.Other data structure can be used in other embodiments.
For the object of this instructions and claims, term " tracker list " can comprise wherein can the database of any type that describes of storage function.The data structure that term " tracker list " is intended to comprise list data structure and other type any is described to be stored in the concept in tracker list to express.
Tracker list 406 can comprise white list 408 and blacklist 410 entry.White list 408 and blacklist 410 can describe respectively for following the tracks of the function that will comprise and get rid of.Different embodiment differently can realize white list and blacklist concept.Some embodiments only can use white list, and other embodiment only can use blacklist, and other embodiment other can dispose white list and blacklist.
When being disposed alone, the function that will comprise or get rid of when white list or blacklist can be defined in tracking respectively.In the white list version of this embodiment, each function matched with white list can be tracked, and each function do not found in white list can not be tracked.Similarly, in blacklist version, each function defined in blacklist will be got rid of by from tracking, and other functions all will be included.
When being disposed together, one of white list or blacklist can be regarded as having priority or another list of overwrite relative to another list.Such as, white list can be deployed as all functions listed and will follow the tracks of, but blacklist can overwrite white list with remove otherwise can be allowed follow the tracks of function.In contrary example, blacklist can identify will from following the tracks of those functions that remove, but those functions can be added back can tracing function set for function identified in white list.
Tracker list 406 can comprise definition or the expression formula of any type that can identify function.Function can be defined as the member in group by many embodiments.Group can be file, module, storehouse, service or other group definition.
For the object of this instructions and claims, the concept of mark function performs by any mechanism that can be used to identify function.In some cases, by identifying function name particularly to identify function.In some cases, function can be identified for the group of its member by mark function.Such as, function can be derived from by this function module, storehouse, service or file identify.
In some cases, function identifies by expression formula, this expression formula can operationally or whenever this function can identified time evaluated.Expression formula can comprise various external data source, thus the different memory object of expression formula or other assembly is compared.In a simple examples, expression formula can identify has a module name and during special time period and when resource (such as free storage) is lower than function tracked during specified level.In such examples, various external data factor (such as time, performance factor or other condition) can comprise for tracking or be satisfied before getting rid of this function.
This expression formula can be any executable code.In some cases, this expression formula can relate to the statistical study of one or more data set.Such as, expression formula can perform and have the high function adding up effect to the statistical study of tracker result set with mark.
Tracker list 406 can comprise various configuration 412.How tracked and can be considered to follow the tracks of " rank " configure 412 definable functions can be.In some cases, each configuration by level arrangement from high to low, and in other cases, respectively can configure and can not arrange by means of linear or order.
In the example of embodiment 400, configuration 412 can comprise debugging level 426, performance class 428 and monitor that rank 430 configures.Debugging level is followed the tracks of can be used to collect and can be used to help developer to understand the details of application in low level.In some cases, whether debugging level is followed the tracks of to comprise and developer can be helped to determine to apply just in the details that its most base-level performs.In many cases, debugging level tracking operation can consume the manyfold of the resource of bottom application, thus causes the performance of this application to be subject to negative effect.
Performance class follows the tracks of the data can collected and can be used to identify and correct the performance issue in application.Performance class is followed the tracks of to use and is followed the tracks of less resource than debugging level, with the performance characteristic making tracking results can reflect this application better.In collected data and how in summary data, performance class is followed the tracks of and can be different from debugging level and follow the tracks of.Debugging level is followed the tracks of can trapping memory object value and be passed to the parameter of function, and performance class is followed the tracks of and can not be collected these values, but can collect the data representing type of performance tolerance.
Monitoring that rank is followed the tracks of can be the configuration that can be used to the long period of operation monitoring application.Compared to other tracing level, monitor that rank is followed the tracks of and can use the different data through monitoring and the different general introduction that such data are provided.In typical case uses, monitor rank follow the tracks of can the person of being managed be used for determining producing in the health degree of application, this is different from the use that the debugging level that can be used by developer before enabling the application in production or performance class are followed the tracks of.
The example of each configuration 412 is not intended to comprising property, but can represent the various use of tracker file and can be applied to the configuration of tracker file.
Wrapper function 414 can be used to carry out tracing function, and this wrapper function can perform together with tracked function 416.Wrapper can provide hook or other connection, can collect tracker data 422 to make tracker 418.Tracker data 422 can be used by various analysis and visual 424.
Tracker 418 available configuration 420 operates, and how this configuration definable tracker 418 can be collected and summary data.Configuration 420 can comprise the data element that will collect, and can comprise in some cases and how can process these data and use for downstream.Described data element can be included in observe or monitor function time can measured or collect any raw data.Subsequent treatment can comprise general introduction, analysis, generating statistics, format, storage maybe can to other operation any of data execution.
Fig. 5 is the diagram of the embodiment 500 of the system that the mechanism had for upgrading tracker list is shown.Embodiment 500 shows the roughly flow process and each assembly that can be implemented to upgrade tracker list.Shown in assembly can be nextport hardware component NextPort, the component software that operates on a hardware component or certain other configuration.
Embodiment 500 show can by the information feed back from various source in tracker list 510 with the system making tracker operate differently.Feedback circulation can in real time, by off-line analysis or by carrying out Information Monitoring with the user interactions of tracker result.Feedback information can increase, the tracker reducing or otherwise change about single function or group of functions operates.In some cases, the information being fed back to tracker list 510 can make follow needle be eliminated some function.
Execution environment 502 can perform application 504.The execution of application 504 can be represented by execution pointer 506, and this execution pointer can identify the current line or function that are just being performed.
Execution environment 502 is shown as and just performs application 504 according to by instruction mode.In some cases, apply 504 can be compiled by use conventional compiler or instant compiler before execution.Some execution environments can use interpretive code or executable machine code.Some execution environments can use other mechanism for performing application.
Tracker storehouse 508 can be the component software with data acquisition unit 536 and general introduction device 538.Collector 536 can be the tracker component gathering raw data by observing application 504.Raw data can be behavioral observation, resource consumption, lapse of time, input and output data value, memory object content or the data of other type any that can gather when function is performed.
General introduction device 538 can prepare raw data and use for downstream.In some cases, general introduction device 538 can assemble the mass data in raw data.In such example, general introduction device 538 can to being called to counting for specific function how many examples in a time period.Downstream tracker result 522 can only comprise through summary data, and raw data can be dropped.
In many examples, the data volume collected by collector 536 can be than the much more data handled by downstream components, when particularly while performing application 504, data are generated constantly.In this case, general introduction device 538 can perform and generate the statistics that can represent bottom data to the initial analysis of data.This statistics can be analyzed further, summarize and represent by various visual 532 and other analysis that can be performed.
When each function can tracked device run into time, can to make to the inquiry of tracker list 510 to determine whether tracking one function, and selecting how to follow the tracks of this function when following the tracks of this function.The tracker list 510 shown in embodiment 500 is enough to determine whether and an example of the how data structure of the information of tracing function as can be only represented to comprise.
Tracker list 510 can comprise the entry of the tracking configuration 514 comprising function expression 512 and will be applied to selected function.In the example of tracker list 510, tracker list 510 can take on white list, wherein in tracker list 510 mark each function can only this function can found in tracker list 510 time tracked.In certain embodiments, can be do not follow the tracks of those functions for the default of the function do not found in tracker list 510.
Tracker list 510 comprises some example entries of the different modes that mark function can be shown.In entry 516, function identifies by module name.This entry can to by being identified as module: the identical tracing level of all function applications represented by the group of functions of foo.When entry 516, be applied to the tracking configuration 514 of these functions for monitoring rank configuration.In entry 518, belong to file: the function of bar can be employed performance class and follow the tracks of.Entry 520 can comprise can be operationally evaluated expression formula to select name to be called X but function that can be tracked when memory object Y=0.When this condition is satisfied, function X can be tracked at debugging level.
The example of tracker list 510 is only how to use different expression formula to identify the function for following the tracks of, and applies an example of different tracing level subsequently to specific function.Tracker list 510 can have implicit expression or explicit layering when utility function expression formula.Such as, realization can allow the expression formula before last expression formula overwrite.In this example, assumed function X is in module: found in foo.In entry 516, function X will be designated in supervision rank, and in entry 520, the tracking of function X will write debugging level by tegmentum when object Y=0.
Tracker result 522 can be analyzed to upgrade or to change tracker list 510 by some different modes.
Real-time analyzer 524 can identify tracking configuration to its inappropriate function, and may can be relayed to tracker list manager 526 by change, and this tracker list manager can send renewal 528 to tracker list 510.The change identified by real-time analyzer 524 can increase may by the tracing level of function represented insufficiently, or can reduce may by the tracing level of function represented too much.
The impact that can be wherein function by the function represented insufficiently may not be mated by the function of the data of collecting for this function.Also relatively large data can be collected to the function that one or more performance or other tolerance have a large impact, and also less data can be collected to the function that each tolerance has a little impact.
This situation may contribute in the overwhelming majority of the function of relatively small amount to tolerance, and is relevant when large flow function is made seldom contribution to tolerance or do not contribute.In this case, tracking expense can significantly be reduced to the minimizing of Monitor and track of the large flow function with less impact.This tracking expense can be used to the detailed tracking increased the function with considerable influence subsequently.
Real-time analyzer 524 can raw data be collected and be operated in the tracker analyzed and store by general introduction subsequently wherein.As a part for data collection operations, many trackers can perform certain and initially summarize.Such as, tracker can gather raw data and periodically interval (such as per second or per minute) provide data to summarize.In some cases, real-time analyzer 524 can perform on the same hardware platform with execution environment 502 and with each assembly in tracker storehouse 508.
The backfeed loop of real-time analyzer 524 can upgrade tracker list 510 in real time or closely in real time.The impact of real-time analyzer 524 can change tracing level and thus change one and follow the tracks of collected data in round (run) process, this tracking round can only last for several seconds or lasting a few hours, a couple of days or even several months.
Real-time analyzer 524 can in execution analysis in each update time section.In such embodiments, real-time analyzer 524 can be used as the part operation of tracker application and can perform on the host device, and this main process equipment also can perform just tested application.
In many cases, real-time analyzer 524 can be light-weight analytical, and this light-weight analytical can use the Threshold Analysis of specific tolerance to increase or reduce the tracing level of a function or group of functions.This Threshold Analysis can be followed the tracks of more than increasing during a predefine number percent the contribution of specific tolerance at function, and reduces tracking when function contributions is less than the second number percent.
Such as, when function is contributed more than 1% a tolerance relevant with resource consumption (such as processor consumption or memory consumption), the tracing level of this function can be increased.When the contribution of Same Function to same tolerance is fallen below 0.5%, tracing level can be reduced.In this example, for increasing the threshold value of following the tracks of and for reduce tracking Second Threshold between difference can be a kind of for introducing sluggish mechanism, it can avoid too much changing tracker rank for borderline cases.In this example, 1% and the threshold value of 0.5> be only used as the example of possible threshold percentage.Other embodiment can use 0.1%, and 0.2%, 2%, 5%, 10% or other number percent.
Off-line analysis device 530 can be analyzed tracker result 522 and carry out generating recommendations, and tracker list manager 526 can create the renewal 528 to tracker list 510 from described recommendation.Off-line analysis device 530 can operate on the hardware platform separated with tracker 508.In some cases, off-line analysis device 530 can perform on the same hardware platform with tracker 508.
In many cases, off-line analysis device 530 can when not supposing that analysis result can be operated by when real-time consumption.So, off-line analysis device 530 can perform the more detailed or complicated algorithm than being expected in real-time analyzer 524.
Off-line analysis device 530 can analyze the tracker result 522 from multiple tracker round.Tracker result 522 can from the different editions of same application 504, this application 504 or from the multiple application can sharing public function.Off-line analysis device 530 can check that historical data is statistically more important to identify other function of which function ratio, and can be the tracing level establishment recommendation that can be applicable to those functions.
The comparable result be expected the more vague generalization from real-time analyzer 524 of result from off-line analysis device 530, because off-line analysis device 530 can be provided for the general guide or the recommendation that arrange initial tracing level.Described recommendation can be used as the initial starting point followed the tracks of, and in some cases, real-time analyzer 524 can for specific tracking round from recommendation modification track rank.
The setting that can identify for individual function of off-line analysis device 530 and real-time analyzer 524 maybe can identify the setting for group of functions.Some analyzers can check all functions in file, module, storehouse, service or other group of functions or function sample, and can to the identical setting of all function applications in this group.In some cases, across multiple function public setting can at some visual or analyze function can be compared to each other time maybe can by combination of function together with generates gathering statistics time useful.
In some cases, real-time analyzer 524 or off-line analysis device 530 can identify specific setting by the basis of function.Such setting can identify can optimize some setting how tracker processes each function.In some cases, analyzer can determine some state or the setting that can avoid error condition or the problem that may occur in previous tracker round.
User interactions analyzer 534 can be analyzed user and how represent mutual with visual 532 or other of tracker result 522.Analyze result can identifying user to which function or group of functions interested.Which function user can identify to the behavior of some function is highly checked and to be analyzed and which does not have.Often not checked or completely can disabled tracking or perform tracking indivisible by those functions of checking.
Fig. 6 is the diagram of the embodiment 600 of the system that the mechanism had for upgrading tracker list based on user interactions is shown.
Embodiment 600 shows the roughly flow process and each assembly that can be implemented to upgrade tracker list.Shown in assembly can be nextport hardware component NextPort, the component software that operates on a hardware component or certain other configuration.
Embodiment 600 shows the system that can be configured to tracker list 614 and tracker by information feed back based on user and tracker data mutual in the database of 620.Feedback circulation can in real time, by off-line analysis or by carrying out Information Monitoring with the user interactions of tracker result.Feedback information can increase, the tracker reducing or otherwise change about single function or group of functions operates.In some cases, the information being fed back to tracker list 614 and tracker configuration 620 can make follow needle be eliminated some function.
Execution environment 602 can perform application 604.The execution of application 604 can be represented by execution pointer 606, and this execution pointer can identify the current line or function that are performed.
Execution environment 602 is shown as and just performs application 604 according to by instruction mode.In some cases, apply 604 can be compiled by use conventional compiler or instant compiler before execution.Some execution environments can use interpretive code or executable machine code.Some execution environments can use other mechanism for performing application.
Tracker storehouse 608 can be the component software with data acquisition unit 610 and general introduction device 612.Collector 610 can be the tracker component gathering raw data by observing application 604.Raw data can be behavioral observation, resource consumption, lapse of time, input and output data value, memory object content or the data of other type any that can gather when function is performed.
General introduction device 612 can prepare raw data and use for downstream.In some cases, general introduction device 612 can assemble the mass data in raw data.In such example, general introduction device 612 can to being called to counting for specific function how many examples in a time period.Downstream tracker result 634 can only comprise through summary data, and raw data can be dropped.
In many examples, the data volume collected by collector 610 can be than the much more data handled by downstream components, when particularly while performing application 604, data are generated constantly.In this case, general introduction device 612 can perform and generate the statistics that can represent bottom data to the initial analysis of data.Statistics can experience further analysis 636, data are summarized 638 and represented by various visual 640 and other analysis.
When each function can tracked device run into time, can to make to the inquiry of tracker list 614 to determine whether tracking one function, and selecting how to follow the tracks of this function when following the tracks of this function.The tracker list 614 shown in embodiment 600 is enough to determine whether and an example of the how data structure of the information of tracing function as can be only represented to comprise.
Tracker list 614 can comprise the entry of the tracking configuration 618 comprising function expression 616 and will be applied to selected function.Following the tracks of configuration 618 can be relevant with the database following the tracks of configuration 620.Each tracking configuration 620 can be tracker can be made to gather some data and arrange set by the predefine of ad hoc fashion summary data.
The classification of the data that configuration definable will be collected or not collect.Some embodiments can apply multiple configuration to given situation, can add to tracker behavior to make each configuration or remove element.In one suchembodiment, configurations can provide default setting, and each follow-up configuration provided can carry out applicable specific use-case by more specifically changing with detailed mode tracker behavior to create custom configuration.Other embodiment can have for combining multiple configuration to define the different modes expecting tracker behavior.
Some configurations can collect the data item helped by application tracking process streams.Such as, tracker can catch and be passed to function and the data object from function passes.The configuration of this tracker can collect enough data to follow memory object or process streams one by one through some functions.Such tracker configuration may not collect in above mentioned resource consumption data point some.Debugging configuration 622 can be the example of such configuration.
Some configurations can comprise the details about performance, and such as resource uses and can draw other tolerance of efficiency or other performance metric from it.Such configuration can comprise the details about storer, processor, network and other resource consumption.In the example of memory consumption, the amount of memory being assigned to a function can be captured, and does not hit and similar tolerance together with performed refuse collection, high-speed cache.Performance configuration 624 can be the example of such configuration.
Other configuration can collect the data that can be used as and monitor that configuration 626 is useful.Monitor that configuration 626 can collect the data item of the general performance that can reflect application, apply as management productiviy can be used for by keeper.Such configuration can collect different pieces of information object set and measure configure from other different from performance-relevant object.
Some configurations can be designed for specific use-case or customize.Such as, different because of project configuration 628 can be defined for specific use-case.This configuration can be collected additive term or perform and can be customized to given item goal analysis, and can not collect other data or perform other analysis can not being suitable for this project.
Individual's preference configuration 630 can comprise the set of data objects and analysis that can be applicable to specific user.Team preference configuration 632 and company's preference configuration 634 can define similarly can in the preference of groups of users or firm-wide level definition.
Tracker result 634 can be used to generate various analysis 636, data general introduction 638 and visual 640.User interactions analyzer 648 can analyze user interactions 642 together with user profiles 644 to generate renewal 650, and this renewal can be applied to configuration 620 and the renewal 652 to tracker list 614.
User interactions 642 can be can be captured alternately any.Some embodiments can be followed the tracks of alternately high-level, such as which visual checked or which analyze be performed.Other embodiment can spectroscopic analysis, general introduction or visual in which data object checked or handled.
User interactions 642 is more detailed, and the renewal that user interactions analyzer 648 can create is more concrete.When user interactions 642 can identifying user interested specific function time, user interactions analyzer 648 can make a change configuration 620 or tracker list 614.
The definition will collected what data and how process data can be comprised to the renewal 650 that configuration 620 is done.Can identify the renewal 652 of tracker list 614 can to the function of its application configuration, module, storehouse or other group of functions.
Generally speaking, the various use scenes of 620 definable trackers are configured.Use scenes can part be identified by user model 646, and this user model can be the explicit or implicit expression task-set that user may just perform.In many cases, user can be transformed into another task-set from a task-set and be converted back.Such as, developer can start when writing application to use tracker in debugging mode, is transformed into performance subsequently tuning, and once application enters production, is transformed into monitoring mode.When bug is found and repairs, or when new feature is added and test, developer can switch back and forth between various pattern.
The type of the analysis 636 that user model 646 activates just by inspection user, data general introduction 638 and visual 640 implies.In many cases, some is visual, analyze and general introduction can for a user model, and in these cases, user model 646 can be inferred by from user action.
In some cases, user model 646 clearly can be defined by user.Some embodiments can have user learning pattern, and wherein user interactions analyzer 648 can be unlocked to follow the tracks of the action of user and create configuration 620 and sometimes create and can be mapped to the tracker list 614 of user to the use of tracker result 634.In such embodiments, user can define user model 646 by explicitly, mutual by analysis 636, data general introduction 638 and visual 640 and tracker result 634 subsequently.User interactions 642 can be collected during learning time section, and user interactions analyzer 648 can create can the mutual configuration set of match user and tracker list of entries best.
The embodiment that the action that embodiment 600 shows wherein tracker can be determined by the tracker list can quoting configuration set.Other embodiment can use other data structure to store and retrieve the setting can applied by tracker.
Fig. 7 is the diagram of the embodiment 700 of the system that the mechanism had for upgrading tracker list based on error log is shown.Embodiment 700 shows the roughly flow process and each assembly that can be implemented to upgrade tracker list.Shown in assembly can be nextport hardware component NextPort, the component software that operates on a hardware component or certain other configuration.
Embodiment 700 show can based on mistake, bug report or other be recorded fault by information feed back to the system in tracker list 712.Depend on this embodiment, backfeed loop can carry out Information Monitoring in real time or by off-line analysis.Feedback information can increase, the tracker reducing or otherwise change about single function or group of functions operates.In some cases, the information being fed back to tracker list 712 can make follow needle be eliminated some function.
Execution environment 702 can perform application 704.The execution of application 704 can be represented by execution pointer 706, and this execution pointer can identify the current line or function that are performed.
Execution environment 702 is shown as and just performs application 704 according to by instruction mode.In some cases, apply 704 can be compiled by use conventional compiler or instant compiler before execution.Some execution environments can use interpretive code or executable machine code.Some execution environments can use other mechanism for performing application.
When running into function in application 704, tracker 708 can be mutual to determine how to follow the tracks of this function with tracker list manager 710.Tracker list manager 710 can inquire about other data structure that tracker list 712 maybe can store the tracker operation that will perform for individual function or group of functions.
Tracker list manager 710 is by checking that code storage storehouse 714 upgrades tracker list 712.Code storage storehouse 714 can comprise various storehouse 716, and described storehouse can comprise source code or compiled code 718, bug have reported 720 and various metadata.Tracker list manager 710 can check that bug report 720 or other metadata 722 are to identify the known problem followed the tracks of in specific function or group of functions.The renewable tracker list 712 of tracker list manager 710 can avoid this known problem to make supervise device round.
Bug report 720 can be relevant with the code in storehouse 716 known or suspect any definition of problem.Bug report 720 can be the report of the automatic generation that can be caught by tracker 708 or certain other assembly.In some cases, the report automatically generated can comprise link or other mark, to make tracker list manager 710 can identify bug report, digests bug report subsequently and identifies the condition that can change tracking.
In some cases, bug report 720 can manually input or edit.Such bug report 720 mechanism that can have for identifying tracker 708 can find the bug relevant to tracker 708 report to make tracker list manager 710.Report from described bug, tracker list manager 710 can determine that tracking can reformed condition, subsequently correspondingly renewal tracker list 712.
Code storage storehouse 714 can comprise tracker storehouse 724, and this tracker storehouse can comprise various code 726, bug report 728 and the metadata 730 relevant to tracker 708.In this case, mistake can be captured and be stored in this tracker storehouse.
Tracker list manager 710 is by checking that following the tracks of history 732 upgrades tracker list 712.Follow the tracks of the situation that error listing 734 definable in history 732 may encounter problems.By profiling error list 734, the condition that mistake may occur can be avoided by removing or changing tracker operation in following tracker round.Such change can be stored in tracker list 712 for tracker round after a while.
Fig. 8 illustrates for using the flow process of the embodiment 800 of the method for tracker to illustrate in Complied executing environment.Embodiment 800 shows and is used in compile duration adds method from tracking operation to executable code.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 800 shows and is used in compile duration mark function, subsequently by adding the method for detection by tracker wrapper functions.Compiled code can be performed subsequently.Tracking executable code can be embedded in application by embodiment 800.Follow the tracks of executable code and can gather each data item, and in some cases, process and store described data item for analyzing after a while.
The compiling of embodiment 800 can be the compiling from source code to intermediate code, the compiling from intermediate code to executable code, the compiling from source code to executable code, or any type of compiling.In certain embodiments, compiling can be the Just-In-Time that can operationally be performed.
Application can receive and compile and can start in frame 804 in frame 802.
Function can be identified in frame 806.Function can be can to any code block of its application tracking.In some cases, the function in frame 806 can be discrete function call.In other cases, function can be arbitrary code block that can be tracked.Function can have the title or other identifier that can find in tracker list in source code.
Can perform in block 808 and search to identify the function in tracker list.When tracker list comprises the expression formula that will assess, this expression formula can be assessed in frame 810.After the list of inquiry tracker, can determine to follow the tracks of configuration in frame 812.
This function can be compiled by tracking wrapper in frame 814.Following the tracks of wrapper can be can be added to function to gather the tracking code of any type of tracker information.In certain embodiments, follow the tracks of wrapper can comprise can make tracker collect specific data item setting, data definition or out of Memory.Some embodiments also can comprise can cross-correlation, general introduction or otherwise prepare setting that original tracker data use for downstream or out of Memory.
If can process another function in frame 816, then method can be back to frame 806.When in frame 816 during processed all functions, having compiled application can be stored and be performed in frame 820 in frame 818.
Fig. 9 illustrates for illustrating in the flow process of the embodiment 900 explaining in execution environment the method using tracker.Embodiment 900 shows to be used in when explaining executable code adds the method for following the tracks of operation to executable code.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 900 identifies function, subsequently by adding the method for detection by tracker wrapper functions during showing and being used in explanation executable code.Embodiment 900 can add tracking executable code as application executive item to application.Follow the tracks of executable code and can gather each data item, and in some cases, process and store described data item for analyzing after a while.
Application can receive in box 902 and perform and can start in frame 904.
The term of execution, function can be identified in frame 906.This function can be searched in tracker list in frame 908.In many cases, tracker list can comprise can evaluated with determine whether tracing function, maybe will to the expression formula of configuration of the tracking that function performs.Under these circumstances, function can frame 910 evaluated and follow the tracks of configuration can determine in frame 912.
In frame 914, this function packed by available tracker.In some cases, tracker can be configured to perform particular data collection and general introduction operation in frame 914.
This function can be performed with tracker in frame 916.When this function executes, tracker image data also can summarize these data in the block 920 in frame 918.This data can be stored in frame 922.
If can process another function in frame 924, then method can be back to frame 906.When in frame 924 during processed all functions, this application can terminate in frame 926.
Figure 10 illustrates for analyzing tracker data to adjust the flow process diagram of the embodiment 1000 of TRL tracing level method for distinguishing.Embodiment 1000 show can be used in real time, near in real time or by carrying out a kind of method that aftertreatment upgrades tracking to tracker data.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 1000 shows tracker whereby and can operate in execution environment and generate a kind of method of tracker data.These data analyzedly can identify those functions that can increase for it or reduce to follow the tracks of.
In frame 1002, application can start to perform.Function can be run in frame 1004, and this function can be tracked to generate original tracker data in frame 1006.At frame 1008, tracker data can be summarized.
Until tracker DSR transmission in frame 1010, process is capable of circulation gets back to frame 1004.When in frame 1010, tracker DSR transmits, transmission can be carried out in frame 1012.Tracker counter can be reset in frame 1014 and this process can be back to frame 1004 to perform another circulation.
The operation of frame 1002 to 1014 can represent that the typical case of the application with tracker performs, and wherein this tracker can transmit data once in a while.Some trackers can transmit data on periodicity time basis, such as per second, per minute, per hour or its mark.Other tracker can transmit data in event, and this event can be the external event or other event any that are received by application.
Analysis tracker data adjust tracing level and can carry out in frame 1016.In certain embodiments, the operation of frame 1016 can be performed during the time period just at circulation time at this tracker of frame 1010 place before next tracker result set of transmission.In such embodiments, the operation of frame 1016 can " in real time " or closely perform in real time.Such embodiment can adjust or tuning tracker based on data just observed at any given time.
At frame 1018, tracker data can be received.The each function identified in tracker data can be analyzed in frame 1020.
For each function in frame 1020, the contribution of this function to general introduction statistics can be analyzed in frame 1022.When in frame 1024, the contribution of this function is suitable, this process can return frame 1020.
Whether the suitable contribution in the analysis of frame 1022 can match with the contribution of this function to statistics for tracing level and carry out weighting.When this function is less to statistics contribution, suitable tracing level can be minimum tracking.When function is a large amount of to one or more statistics contribution, suitable tracing level can be higher.
The suitable tracing level of given situation can be depending on the design of tracker and the analysis to raw data execution.Many such systems can use predefine threshold value to determine appropriate degree.Such as, the function that can be less than 1% to the statistics contribution through general introduction can be followed the tracks of in minimal level, and contributes more function can follow the tracks of in higher level.Higher level follow the tracks of can gather additional data points, measurement, maybe can affect each statistics other observe.
In some cases, can have can the customized configuration of any adjustment of overwrite for function.This configuration can be identified in frame 1026.
When in frame 1028 for when the function defining customized configuration, this function can remain unchanged and this process can be back to frame 1020.
When the special definition in frame 1028 of this function configuration and in frame 1024, the contribution of this function is inappropriate time, the tracking of this function can be adjusted.
When the contribution of this function is too large relative to the tracing level of this function in frame 1030, tracing level can be reduced in frame 1032.When the contribution of this function is too little relative to the tracing level of this function in frame 1030, tracing level can be increased in frame 1034.
The change of tracing level can other mechanism of how tracing function be made by upgrading tracker list or definable.In the real-time of embodiment 1000 or closely real-time realization, tracker can be limited in amount tracking statistics to the tracking that the function of seldom impact performs, and guarantees that the function making impact is fully followed the tracks of simultaneously.
Figure 11 illustrates for analyzing user interactive data to adjust the flow process diagram of the embodiment 1100 of TRL tracing level method for distinguishing.Embodiment 1100 shows a kind of method that can upgrade tracking whereby based on the user interactions with tracker data.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 1100 shows a kind of method that can be used to identify the more important or more unessential function of other function comparable whereby with the user interactions of tracker result.Function is classified by user's pair interest levels that the data relevant with this function show.User demonstrates those functions of a large amount of interest can high-level tracked, and those functions that user demonstrates less interest can be tracked in relatively low rank.
At frame 1102, tracker data can be received.These data can use at frame 1104 and variously visually check and analyze in frame 1106 analysis that various user selects.This data can be summarized in frame 1108.
The user interactions with each data representation can be followed the tracks of in frame 1110.
The using forestland of user can be determined in frame 1112.Using forestland can refer to the task that can be implemented during tracker data interaction or goal set.The example of using forestland can comprise debugging mode, performance test pattern, monitoring mode and other.Described pattern can be used to gather tracker and arrange set in vague generalization configuration, and this vague generalization configuration can be applicable to tracker can by the different modes used.
Can occur in frame 1114 analysis of user interactions, this can cause the change to tracing level, and described change can be integrated in configuration definition.
In frame 1116, each using forestland can be analyzed.In each using forestland, different tracker arrange data that definable collected by tracker and the general introduction that can perform tracker result, analysis and other operate.
For each user model in frame 1116, glad interesting function can be identified in frame 1118, and low interest function can be identified in frame 1120.High interest function can be can to its tracker data analysis, visual and other those mutual functions user.Low interest function can be those functions that user may not check its tracker data.
The interest levels of function can be determined from user the action that data perform.Each embodiment can have the different mechanisms for classifying to the interest levels of function.It, by each user interactions checked, and is high interest by bottom function category that mechanism can identify wherein data.Its data can be classified as low interest by those functions seldom or never checked.
Another mechanism for classifying to the user interest rank of function can be to the different weight of different user cross allocation.When user shrinks or minimize a visual part, those functions that its data are minimized can be classified as low interest.Similarly, may do not checked or checked that the analysis of short time period can make its associated functions be identified as low interest.On the contrary, its data are checked or those functions of exploring can be classified as high interest in detail.
Some can be weighted into alternately provides higher interest levels more mutual than other.Such as, wherein user is deployable and explore and to browse the higher weight of same visual use with the details of some functional dependence visual comparable when not carrying out examen to some region visual and carry out weighting and browse in detail.
User interactions can be assembled across multiple user for same tracker data set.In such embodiments, the result of the analysis in frame 1114 can be the configuration of the input representing many users.
User interactions can be assembled across the tracker result of the Multi-instance of same application.In some cases, user interactions can be reflected in and the result through assembling on the user interactions of the tracker result from multiple application.
For each function in frame 1122, interest levels can compared with previous tracing level.If interest levels and tracing level match in frame 1128, then tracing level can be kept constant.When in frame 1128 interest levels do not match with tracing level and in frame 1130, tracing level is too high time, tracing level can be reduced in frame 1132.When in frame 1129 interest levels do not match with tracing level and in frame 1130, tracing level is too low time, tracing level can be improved in frame 1134.
In frame 1136, the tracing level after adjustment can be integrated in configuration definition.Configuration arranges and can reflect that the baseline that can be applicable to specific using forestland is arranged.
Figure 12 is the flow process diagram of the embodiment 1200 illustrated for adjusting the method for tracking based on the mistake identified between the previous operating period of tracker.Embodiment 1200 shows a kind of method that can be used for upgrading tracking based on other source of bug, error log or historical events.
Other embodiments can use different sequences, more or less step and different names or term to complete identity function.In certain embodiments, various operation or operational set can operate with other and perform concurrently with synchronous or asynchronous system.Step selected is herein selected to exemplify certain operations principle in simplified form.
Embodiment 1200 is example embodiment for the method illustrated for changing tracking operation based on the report of history bug or mistake.
In frame 1202, application can start to perform.Function can be identified in frame 1204 and the trial to following the tracks of can be performed in frame 1206.If do not run into mistake in frame 1208, then process is capable of circulation gets back to frame 1204.
When there is mistake in frame 1208, then can gather the metadata about this mistake and in frame 1212, this mistake can be stored in a database in frame 1210.Metadata can comprise any information and can identifying that can be relevant to mistake and may lead to errors and maybe can affect the latency of mistake.
Can in frame 1214 profiling error.The mistake from multiple tracking can be assembled in frame 1216.In certain embodiments, the mistake from multiple application can be assembled in frame 1218.
For in frame 1220 from error identification or each function of drawing, can profiling error occurs in frame 1222 condition.The search to the successful tracking of this function in different situations can be made in frame 1224.
Successfully follow the tracks of if do not existed in frame 1226, then can upgrade tracker list to be got rid of from tracking by this function in frame 1228.In this case, this function can be got rid of completely and maybe can be employed minimum rank and follow the tracks of.
When performing at least one and successfully follow the tracks of in frame 1226, can identify in frame 1230 mistake occur condition and can for tracker list creating conditional expression in frame 1232, this conditional expression can suppress or limit the tracking under described condition.
The object of foregoing description of the present invention for diagram and description is presented.It is not intended to exhaustive theme or this theme is limited to disclosed precise forms, and in view of above-mentioned instruction other amendment and modification be all possible.Select and describe embodiment to explain principle of the present invention and practical application thereof best, enable others skilled in the art utilize the present invention in various embodiment and various being suitable for best in the amendment of conceived special-purpose thus.Appended claims is intended to be interpreted as comprising other alternative embodiments except the scope limit by prior art.

Claims (113)

  1. Tracking closure in readjustment environment
    1. the method performed on a computer processor, described method comprises:
    Receive application;
    Identify the first function in described application;
    Follow the tracks of in closure first and pack described first function;
    Mark is passed to the second function of described first function, and described second function is the first call back function;
    Follow the tracks of in closure second and pack described second function; And
    Follow the tracks of and to perform described first function with described first together with closure and follow the tracks of together with closure perform described second function with described second.
  2. 2. the method for claim 1, is characterized in that, comprises further:
    Identify multiple attributes of described first function; And
    Described multiple attribute of described first function is projected to described first and follow the tracks of closure.
  3. 3. method as claimed in claim 2, is characterized in that, comprise further:
    Determine that the first attribute of described multiple attribute of described first function is the 3rd function; And
    Follow the tracks of in closure the 3rd and pack described 3rd function.
  4. 4. the method for claim 1, is characterized in that, described first follows the tracks of closure:
    Catch the first start time of described first function; And
    Described first start time is stored.
  5. 5. method as claimed in claim 4, is characterized in that, described first tracking closure is further:
    Described first start time is sent to data collector to store.
  6. 6. method as claimed in claim 5, is characterized in that, described second follows the tracks of closure:
    Catch the second start time of described second function; And
    Described second start time is sent to described data collector.
  7. 7. the method for claim 1, is characterized in that, described first follows the tracks of closure:
    Identify the first call function of described first function; And
    The identifier of described first call function is stored.
  8. 8. method as claimed in claim 7, is characterized in that, described first follows the tracks of closure:
    Detect described first call function to be packed by by tracking closure.
  9. 9. method as claimed in claim 7, it is characterized in that, described identifier is the unique identifier of an example of described function.
  10. 10. method as claimed in claim 7, it is characterized in that, described identifier is the unique identifier of the class relevant with described function.
  11. 11. methods as claimed in claim 7, is characterized in that, comprise further:
    By the call function that described first function identification is described second function; And
    Second identifier of described first function is stored as the described call function of described second function.
  12. 12. methods as claimed in claim 11, is characterized in that, comprise further:
    Described call function is linked to described first function according to stored identifier and by described first function link to described call function.
  13. 13. the method for claim 1, is characterized in that, comprise further:
    Described first function is compiled together with described first tracker closure.
  14. 14. methods as claimed in claim 13, is characterized in that, described in be compiled as Just-In-Time.
  15. 15. the method for claim 1, is characterized in that, comprise further:
    Mark is by the 3rd function returned from described first function, and described 3rd function is the second call back function;
    Follow the tracks of in closure the 3rd and pack described 3rd function; And
    Follow the tracks of together with closure perform described 3rd function with the described 3rd.
  16. 16. 1 kinds of systems, comprising:
    Processor;
    The execution environment operated on the processor, described execution environment:
    Receive application;
    Receive and follow the tracks of storehouse, described tracking storehouse:
    Identify the first function in described application;
    Follow the tracks of in closure first and pack described first function;
    Mark is passed to the second function of described first function, and described second function is the first call back function; And
    Follow the tracks of in closure second and pack described second function;
    Described execution environment is further:
    Follow the tracks of and to perform described first function with described first together with closure and follow the tracks of together with closure perform described second function with described second.
  17. 17. systems as claimed in claim 16, it is characterized in that, described execution environment comprises instant compiler.
  18. 18. systems as claimed in claim 16, is characterized in that, comprise further:
    Collect data from multiple tracking closure and described data stored data collector in a database.
  19. 19. systems as claimed in claim 18, is characterized in that, comprise further:
    Analyze the described data in described database and produce the visual data-analyzing machine of at least one subset of described data, the described visual visual link comprised between described first function and described second function.
  20. 20. 1 kinds comprise can the storehouse of performing of computer instructions, describedly computer instructions can perform a kind of method when performing together with applying, and described method comprises:
    Identify the first function in described application;
    Follow the tracks of in closure first and pack described first function;
    Mark is passed to the second function of described first function, and described second function is the first call back function;
    Follow the tracks of in closure second and pack described second function; And
    Follow the tracks of and to perform described first function with described first together with closure and follow the tracks of together with closure perform described second function with described second.
    For automatically controlling the tracker list of tracker behavior
  21. 21. 1 kinds of methods performed by least one computer processor, described method comprises:
    Receive application, described application comprises multiple function;
    From described application identities first function;
    Assessment is followed the tracks of list and is determined that whether described first function is tracked;
    When described first function is wanted tracked, described first function band is performed with following the tracks of;
    When described first function is not by time tracked, described first function is not performed with not being with tracking.
  22. 22. methods as claimed in claim 21, is characterized in that, described first function described application the term of execution identified.
  23. 23. methods as claimed in claim 22, is characterized in that:
    The first example receiving described first function and described first example determining described first function tracked; And
    The second example receiving described first function and described second example determining described first function will be not tracked.
  24. 24. methods as claimed in claim 23, is characterized in that, described list is updated after described application starts to perform.
  25. 25. methods as claimed in claim 21, is characterized in that, described first function is loaded in storer for identified during execution at described first function.
  26. 26. methods as claimed in claim 21, it is characterized in that, described first function is identified before execution.
  27. 27. methods as claimed in claim 26, is characterized in that, described first function described first function perform before and described application start perform after identified.
  28. 28. methods as claimed in claim 26, is characterized in that, described tracking comprises and detects described first function before execution.
  29. 29. methods as claimed in claim 28, it is characterized in that, described detection is carried out at compile duration.
  30. 30. methods as claimed in claim 29, is characterized in that, described in be compiled as the Just-In-Time operationally performed.
  31. 31. methods as claimed in claim 21, it is characterized in that, described list comprises white list, and described white list comprises the function that will follow the tracks of.
  32. 32. methods as claimed in claim 21, it is characterized in that, described list comprises blacklist, and described blacklist comprises the function that will do not follow the tracks of.
  33. 33. methods as claimed in claim 32, it is characterized in that, described list comprises white list further, and described white list comprises the function that will follow the tracks of.
  34. 34. methods as claimed in claim 21, it is characterized in that, described first function is the member of module, and described module is identified in described list.
  35. 35. methods as claimed in claim 21, it is characterized in that, described first function is the member of file, and described file is identified in described list.
  36. 36. methods as claimed in claim 21, it is characterized in that, described list is defined by the user.
  37. 37. methods as claimed in claim 21, is characterized in that, described list is updated after described application starts to perform.
  38. 38. 1 kinds of systems, comprising:
    At least one processor;
    The execution environment that at least one processor described operates, described execution environment performs the application comprising multiple function;
    The tracker operated in described execution environment, described tracker:
    From described application identities first function;
    Assessment is followed the tracks of list and is determined that whether described first function is tracked;
    When described first function is wanted tracked, described first function band is performed with following the tracks of;
    When described first function is not by time tracked, described first function is not performed with not being with tracking.
  39. 39. systems as claimed in claim 38, is characterized in that, described first function described application the term of execution identified.
  40. 40. systems as claimed in claim 39, it is characterized in that, described tracker is further:
    The first example receiving described first function and described first example determining described first function tracked; And
    The second example receiving described first function and described second example determining described first function will be not tracked.
    Configuring by the multi-track device that the basis of function is applied
  41. 41. 1 kinds of methods performed by least one computer processor, described method comprises:
    Receive application, described application comprises multiple function;
    From described application identities first function;
    The tracking configuration that described first function is determined in list is followed the tracks of in assessment;
    When described first function is followed the tracks of with the first configuration, make described first function tracked according to described first configuration;
    When described first function is followed the tracks of with the second configuration, make described first function tracked according to described second configuration;
    When described first function is followed the tracks of with the 3rd configuration, make described first function tracked according to described 3rd configuration.
  42. 42. methods as claimed in claim 41, is characterized in that, comprise further:
    From described application identities second function;
    Assess described tracking list to determine that second of described second function follows the tracks of configuration; And
    When described first function will be followed the tracks of according to described first configuration, described second function is followed the tracks of according to described second configuration.
  43. 43. methods as claimed in claim 42, it is characterized in that, described first function is the first example of described first function, described second function is the second example of described first function.
  44. 44. methods as claimed in claim 42, is characterized in that, comprise further:
    From described application identities the 3rd function;
    Assess described tracking list to determine that the 3rd of described 3rd function the follows the tracks of configuration; And
    When described first function will be followed the tracks of according to described first configuration and described second function will be followed the tracks of according to described second configuration, described 3rd function is followed the tracks of according to described 3rd configuration.
  45. 45. methods as claimed in claim 44, it is characterized in that, described first function is the first example of described first function, described second function is the second example of described first function, and described 3rd function is the 3rd example of described first function.
  46. 46. methods as claimed in claim 45, is characterized in that, described first is configured to debugging configuration, and described second is configured to monitor configuration, and described 3rd configuration comprises and not following the tracks of.
  47. 47. methods as claimed in claim 44, is characterized in that, described assessment described tracking list was performed before the described application of execution.
  48. 48. methods as claimed in claim 47, is characterized in that, described in make described first function according to described first configuration follow the tracks of comprise with described first tracker configuration compile described first function.
  49. 49. methods as claimed in claim 48, is characterized in that, described in be compiled as Just-In-Time.
  50. 50. methods as claimed in claim 44, is characterized in that, described assessment described tracking list is performed after described application starts to perform.
  51. 51. methods as claimed in claim 50, is characterized in that, comprise further:
    The renewal to described tracking list is received after the described execution starting described application.
  52. 52. 1 kinds of systems, comprising:
    At least one processor;
    The execution environment that at least one processor described performs, described execution environment performs application;
    Comprise the tracking list of multiple entry, each entry in described entry comprises function identifier and follows the tracks of configuration accordingly;
    The tracker performed in described execution environment, described tracker:
    From described application identities first function;
    The tracking configuration that described first function is determined in list is followed the tracks of in assessment;
    When described first function is followed the tracks of with the first configuration, make described first function tracked according to described first configuration;
    When described first function is followed the tracks of with the second configuration, make described first function tracked according to described second configuration;
    When described first function is followed the tracks of with the 3rd configuration, make described first function tracked according to described 3rd configuration.
  53. 53. systems as claimed in claim 52, is characterized in that, comprise further:
    Receive the renewal of described tracking list and the tracking list manager that makes described tracking list be updated.
  54. 54. systems as claimed in claim 53, is characterized in that, described tracking list manager makes described tracking list be updated while described application performs.
  55. 55. systems as claimed in claim 52, is characterized in that, described first function wrapping is followed the tracks of in closure first by described tracker.
  56. 56. systems as claimed in claim 55, is characterized in that, described first follows the tracks of closure makes described tracker follow the tracks of described first function according to described tracking configuration.
  57. 57. systems as claimed in claim 56, is characterized in that, described tracking List Identification is applied to the single tracking configuration of group of functions.
  58. 58. systems as claimed in claim 57, it is characterized in that, described group of functions is identified as module.
  59. 59. systems as claimed in claim 57, it is characterized in that, described group of functions is identified as the file comprising described group of functions.
  60. 60. systems as claimed in claim 52, it is characterized in that, described tracking List Identification will be applied to described first of the first example of described first function and follow the tracks of configuration, and described tracking list identifies second of second example that will be applied to described first function further and follows the tracks of configuration.
    To tracker general introduction real-time analysis to change tracker behavior
  61. 61. 1 kinds of methods performed by least one computer processor, described method comprises:
    Receive the tracker data gathered from tracking more than first function, described more than first function is included in the application, and described tracker data are collected in the interim very first time;
    Create the first statistics of the described tracker data representing described very first time interval;
    Identify the first function in described tracker data, described first function to the contribution of described first statistics lower than first threshold; And
    In subsequent time intervals, make the rank that described first function is reducing tracked.
  62. 62. methods as claimed in claim 61, is characterized in that, comprise further:
    Receive the second tracker data gathered from tracking more than second function, described more than second function is included in the application, and described second tracker data are collected during continuing the time interval in the rear, and described more than second function comprises described first function;
    Create the second statistics of the described second tracker data representing described subsequent time intervals;
    Determine that the contribution of described first function to described first statistics is higher than described first threshold; And
    Make the rank that described first function is promoting tracked in the continuous time interval in the second rear.
  63. 63. methods as claimed in claim 62, it is characterized in that, described first statistics comprises the statistics be counted.
  64. 64. methods as claimed in claim 62, is characterized in that, described first threshold comprises to be contributed the percent value of described first statistics.
  65. 65. methods as described in claim 64, is characterized in that, described percent value contribution is less than one of one group of percent value, and described one group of percent value is:
    20%, 10%, 5%, 2%, 1%, 0.5%, 0.25% and 0.1%.
  66. 66. methods as claimed in claim 62, is characterized in that, the rank of described reduction comprises the quantity of the minimizing of the parameter for described first function collection.
  67. 67. methods as described in claim 66, is characterized in that, the rank of described reduction comprises first parameter of collecting and being used to generate described first statistics.
  68. 68. methods as described in claim 67, is characterized in that, the rank of described lifting comprises collects described first parameter.
  69. 69. methods as claimed in claim 62, is characterized in that, the rank of described reduction comprises the sampling rate of the minimizing of the parameter for described first function collection.
  70. 70. methods as described in claim 69, is characterized in that, the rank of described reduction comprises first parameter of collecting and being used to generate described first statistics.
  71. 71. methods as claimed in claim 62, it is characterized in that, the described very first time is spaced apart time predefined interval.
  72. 72. methods as described in claim 71, it is characterized in that, described subsequent time intervals and the described very first time are spaced apart equal duration.
  73. 73. methods as claimed in claim 62, it is characterized in that, described very first time interval is defined by the first event and second event.
  74. 74. methods as described in claim 73, it is characterized in that, described subsequent time intervals is spaced apart different time spans from the described very first time.
  75. 75. 1 kinds of systems, comprising:
    At least one processor;
    The execution environment that at least one processor described operates, described execution environment performs application, and described application comprises multiple function;
    Tracker, described tracker:
    Gather the tracker data gathered from tracking more than first function, described more than first function is included in the application, and described tracker data are collected in the interim very first time;
    Create the first statistics of the described tracker data representing described very first time interval;
    Identify the first function in described tracker data, described first function to the contribution of described first statistics lower than first threshold; And
    In subsequent time intervals, make the rank that described first function is reducing tracked.
  76. 76. systems as described in claim 75, it is characterized in that, described tracker is further:
    Receive the second tracker data gathered from tracking more than second function, described more than second function is included in the application, and described second tracker data are collected during continuing the time interval in the rear, and described more than second function comprises described first function;
    Create the second statistics of the described second tracker data representing described subsequent time intervals;
    Determine that the contribution of described first function to described first statistics is higher than described first threshold; And
    Make the rank that described first function is promoting tracked in the continuous time interval in the second rear.
    The user interactions analysis of tracker data is to configure application tracking device
  77. 77. 1 kinds of methods performed by least one computer processor, described method comprises:
    Receive user interactions set, described user interactions set with visual user conversation during collected, the tracker data that described visable representation gathers by following the tracks of application with tracker, described application comprises multiple function;
    Analyzing described user interactions set is low interest function by the first function identification; And
    Described tracker is made to follow the tracks of described first function at the tracing level reduced.
  78. 78. methods as described in claim 77, is characterized in that, comprise further:
    Analyzing described user interactions set is high interest function by the second function identification; And
    Described tracker is made to follow the tracks of described first function at the tracing level promoted.
  79. 79. methods as described in claim 78, it is characterized in that, described multiple tracker result comprises the tracker result from multiple different application.
  80. 80. methods as described in claim 79, is characterized in that, described multiple tracker result comprises the tracker result from described first application.
  81. 81. methods as described in claim 79, is characterized in that, described multiple tracker result does not comprise the tracker result from described first application.
  82. 82. methods as described in claim 78, is characterized in that, described user interactions comprises and minimizes described first function.
  83. 83. methods as described in claim 82, is characterized in that, described user interactions comprise check described visual in data relevant with described second function.
  84. 84. methods as described in claim 78, is characterized in that, comprise further:
    Be stored in tracker database by the entry for described first function, described tracker database is queried to determine that described first function is tracked at the tracing level of described reduction during following the tracks of.
  85. 85. methods as described in claim 78, it is characterized in that, the tracing level of described reduction comprises not to be followed the tracks of described first function.
  86. 86. methods as described in claim 78, it is characterized in that, described first function is the first example of described first function, and described second function is the second example of described first function.
  87. 87. methods as described in claim 78, is characterized in that, the described multiple tracker result of described analysis was performed before described first application of tracking.
  88. 88. methods as described in claim 78, is characterized in that, the described multiple tracker result of described analysis is performed while described first application of tracking.
  89. 89. methods as described in claim 78, is characterized in that, comprise further:
    Identifying user is classified, and described users classification identifies the task object of described user interactions set, and is the low interest function in described users classification by described first function identification.
  90. 90. methods as described in claim 89, is characterized in that, comprise further:
    Identify the second users classification, described second users classification identifies the second task object of described user interactions set, and is the high interest function in described second users classification by described first function identification.
  91. 91. 1 kinds of systems, comprising:
    At least one processor;
    The user analyzer that at least one processor described performs, described user analyzer:
    Receive user interactions set, described user interactions set with visual user conversation during collected, the tracker data that described visable representation gathers by following the tracks of application with tracker, described application comprises multiple function;
    Analyzing described user interactions set is low interest function by the first function identification; And
    Described tracker is made to follow the tracks of described first function at the tracing level reduced.
  92. 92. systems as described in claim 91, it is characterized in that, described user analyzer is further:
    Analyzing described user interactions set is high interest function by the second function identification; And
    Described tracker is made to follow the tracks of described first function at the tracing level promoted.
  93. 93. systems as described in claim 92, it is characterized in that, described multiple tracker result comprises the tracker result from multiple different application.
  94. 94. systems as described in claim 93, is characterized in that, described multiple tracker result comprises the tracker result from described first application.
    For configuring error listing and the bug report analysis of application
  95. 95. 1 kinds of methods performed by least one computer processor, described method comprises:
    Search Error database with mark with follow the tracks of relevant the first mistake of the first function, described first function be with the application of tracker the term of execution be called;
    Upgrade tracker list by the entry relevant with described first function, described tracker list be with described tracker described application the term of execution by described tracker reference;
    Described entry described first function of mark also makes described tracker not follow the tracks of described first function based on described entry.
  96. 96. methods as described in claim 95, it is characterized in that, described entry comprises the first condition not following the tracks of described first function.
  97. 97. methods as described in claim 96, it is characterized in that, described first condition draws from the metadata be associated with described first mistake.
  98. 98. methods as described in claim 97, it is characterized in that, described metadata comprises invoked second function of a part as described application.
  99. 99. methods as described in claim 97, is characterized in that, described metadata comprises described first mistake at its lower software merit rating occurred.
  100. 100. methods as described in claim 97, is characterized in that, described metadata comprises described first mistake in its lower hardware configuration occurred.
  101. 101. methods as described in claim 97, it is characterized in that, described first mistake is identified by described tracker.
  102. 102. methods as described in claim 101, it is characterized in that, described first mistake is added to described error database by described tracker.
  103. 103. methods as described in claim 97, it is characterized in that, described first mistake is by user ID, and described first mistake is added to described error database by least one user action.
  104. 104. methods as described in claim 95, is characterized in that, described tracker list is updated being with the described application of described tracker described the term of execution.
  105. 105. methods as described in claim 95, is characterized in that, the mistake that described error database gathers during being included in and following the tracks of multiple application.
  106. 106. methods as described in claim 105, is characterized in that, described first mistake the described tracker of band the second application term of execution be encountered.
  107. 107. one kinds of systems, comprising:
    At least one processor;
    The tracker list manager that at least one processor described performs, described tracker list manager:
    Search Error database mark with follow the tracks of relevant the first mistake of the first function, described first function be with the application of tracker the term of execution be called;
    Upgrade tracker list by the entry relevant with described first function, described tracker list be with described tracker described application the term of execution by described tracker reference;
    Described entry described first function of mark also makes described tracker not follow the tracks of described first function based on described entry.
  108. 108. systems as described in claim 107, is characterized in that, described error database comprises the mistake gathered from multiple tracker round.
  109. 109. systems as described in claim 108, is characterized in that, described error database comprises the mistake gathered from the multiple tracker rounds performed in multiple different application.
  110. 110. systems as described in claim 109, is characterized in that, described first mistake occurs while tracking second is applied.
  111. 111. systems as described in claim 107, it is characterized in that, described entry comprises the first condition not following the tracks of described first function.
  112. 112. systems as described in claim 111, is characterized in that, the second condition of described first function is followed the tracks of in described tracker list definition.
  113. 113. systems as described in claim 107, it is characterized in that, described first function is defined by module name.
CN201480035488.XA 2013-04-20 2014-01-15 Tracer list for automatically controlling tracer behavior Pending CN105339901A (en)

Applications Claiming Priority (13)

Application Number Priority Date Filing Date Title
US13/867,057 US20130283242A1 (en) 2013-04-20 2013-04-20 Tracing Closures in a Callback Environment
US13/867,057 2013-04-20
US13/916,566 2013-06-12
US13/916,566 US20140317604A1 (en) 2013-04-20 2013-06-12 Real Time Analysis of Tracer Summaries to Change Tracer Behavior
US13/916,563 2013-06-12
US13/916,568 2013-06-12
US13/916,561 US9021445B2 (en) 2013-04-20 2013-06-12 Tracer list for automatically controlling tracer behavior
US13/916,563 US20140317603A1 (en) 2013-04-20 2013-06-12 Multiple Tracer Configurations Applied on a Function-by-Function Level
US13/916,571 US8978016B2 (en) 2013-04-20 2013-06-12 Error list and bug report analysis for configuring an application tracer
US13/916,568 US8966452B2 (en) 2013-04-20 2013-06-12 User interaction analysis of tracer data for configuring an application tracer
US13/916,561 2013-06-12
US13/916,571 2013-06-12
PCT/US2014/011727 WO2014171982A1 (en) 2013-04-20 2014-01-15 Tracer list for automatically controlling tracer behavior

Publications (1)

Publication Number Publication Date
CN105339901A true CN105339901A (en) 2016-02-17

Family

ID=51731740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480035488.XA Pending CN105339901A (en) 2013-04-20 2014-01-15 Tracer list for automatically controlling tracer behavior

Country Status (3)

Country Link
EP (1) EP2987083A4 (en)
CN (1) CN105339901A (en)
WO (1) WO2014171982A1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080127112A1 (en) * 2006-11-23 2008-05-29 International Business Machines Corporation Software tracing
US20080155348A1 (en) * 2006-09-29 2008-06-26 Ventsislav Ivanov Tracing operations in multiple computer systems
US20120204156A1 (en) * 2009-08-10 2012-08-09 International Business Machines Corporation Software application recreation
CN102789409A (en) * 2012-06-29 2012-11-21 惠州市德赛西威汽车电子有限公司 Embedded system automation module test method on basis of data communication monitoring
US20130061212A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Modern Application Tracing

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002052411A1 (en) * 2000-12-21 2002-07-04 Veritas Operating Corporation Computer software run-time analysis systems and methods
JP4436036B2 (en) * 2002-12-18 2010-03-24 インターナショナル・ビジネス・マシーンズ・コーポレーション Information processing apparatus, trace processing method, program, and recording medium
US7526757B2 (en) * 2004-01-14 2009-04-28 International Business Machines Corporation Method and apparatus for maintaining performance monitoring structures in a page table for use in monitoring performance of a computer program
US7827539B1 (en) * 2004-06-25 2010-11-02 Identify Software Ltd. System and method for automated tuning of program execution tracing
US7941789B2 (en) * 2006-09-29 2011-05-10 Sap Ag Common performance trace mechanism
US7640459B2 (en) * 2006-09-30 2009-12-29 Sap Ag Performing computer application trace with other operations
US20080276129A1 (en) * 2007-05-02 2008-11-06 International Business Machines Corporation Software tracing
EP2181391B1 (en) * 2007-08-24 2012-10-24 OPNET Technologies, Inc. Selective monitoring of software applications
US8745606B2 (en) * 2007-09-28 2014-06-03 Intel Corporation Critical section ordering for multiple trace applications
US8448142B2 (en) * 2009-08-25 2013-05-21 International Business Machines Corporation Incremental runtime compliance validation of renderable objects
EP2553582A1 (en) * 2010-03-26 2013-02-06 Software Diagnostics Technology GmbH A method for automatically generating a trace data set for a software system, a computer system, and a computer program product
US20110289485A1 (en) * 2010-05-21 2011-11-24 International Business Machines Corporation Software Trace Collection and Analysis Utilizing Direct Interthread Communication On A Network On Chip
US20120151396A1 (en) * 2010-12-09 2012-06-14 S Ramprasad Rendering an optimized metrics topology on a monitoring tool

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080155348A1 (en) * 2006-09-29 2008-06-26 Ventsislav Ivanov Tracing operations in multiple computer systems
US20080127112A1 (en) * 2006-11-23 2008-05-29 International Business Machines Corporation Software tracing
US20120204156A1 (en) * 2009-08-10 2012-08-09 International Business Machines Corporation Software application recreation
US20130061212A1 (en) * 2011-09-06 2013-03-07 Microsoft Corporation Modern Application Tracing
CN102789409A (en) * 2012-06-29 2012-11-21 惠州市德赛西威汽车电子有限公司 Embedded system automation module test method on basis of data communication monitoring

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
RAVINDRANATH L,ET,AL: "Appinsight:Mobile App Performance Monitoring in the Wild", 《10TH USENIX SYMPOSIUM ON OPERATING SYSTEM DESIGN AND IMPLEMENTION》 *

Also Published As

Publication number Publication date
EP2987083A4 (en) 2017-04-19
EP2987083A1 (en) 2016-02-24
WO2014171982A1 (en) 2014-10-23

Similar Documents

Publication Publication Date Title
US9417993B2 (en) Real time analysis of tracer summaries to change tracer behavior
US9389992B2 (en) Multiple tracer configurations applied on a function-by-function level
US9298589B2 (en) User interaction analysis of tracer data for configuring an application tracer
US8978016B2 (en) Error list and bug report analysis for configuring an application tracer
US9575874B2 (en) Error list and bug report analysis for configuring an application tracer
US9021445B2 (en) Tracer list for automatically controlling tracer behavior
US9594754B2 (en) Purity analysis using white list/black list analysis
US8826254B2 (en) Memoizing with read only side effects
Herzig et al. Predicting defects using change genealogies
CN105283848A (en) Application tracing by distributed objectives
CN105283866A (en) Optimization analysis using similar frequencies
Roth et al. On-line automated performance diagnosis on thousands of processes
CN105122234A (en) Deploying trace objectives using cost analyses
EP2831739A1 (en) Profile data visualization
CN105765560A (en) Software component recommendation based on multiple trace runs
US11243652B2 (en) Team knowledge sharing
CN103279471A (en) Logical grouping of profile data
Xu System problem detection by mining console logs
CN108089978A (en) A kind of diagnostic method for analyzing ASP.NET application software performance and failure
Bielefeld Online performance anomaly detection for large-scale software systems
Kohyarnejadfard et al. Anomaly detection in microservice environments using distributed tracing data analysis and NLP
Reynolds et al. Cronista: A multi-database automated provenance collection system for runtime-models
CN105339901A (en) Tracer list for automatically controlling tracer behavior
BATE Auditable Data Provenance in Streaming Data Processing
Mannocci et al. Data Flow Quality Monitoring in Data Infrastructures.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20170516

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: CONCURIX CORP.

TA01 Transfer of patent application right
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160217

WD01 Invention patent application deemed withdrawn after publication