US7703094B2 - Adaptive and dynamic filtering of threaded programs - Google Patents
Adaptive and dynamic filtering of threaded programs Download PDFInfo
- Publication number
- US7703094B2 US7703094B2 US11/026,687 US2668704A US7703094B2 US 7703094 B2 US7703094 B2 US 7703094B2 US 2668704 A US2668704 A US 2668704A US 7703094 B2 US7703094 B2 US 7703094B2
- Authority
- US
- United States
- Prior art keywords
- thread
- program
- overhead
- program thread
- time period
- 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.)
- Active, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/81—Threshold
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/86—Event-based monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/865—Monitoring of software
Definitions
- An embodiment of the invention relates to system performance analysis in general, and more specifically to adaptive and dynamic filtering of threaded programs.
- Computer programs are often subject to analysis in order to make determinations regarding program performance.
- an instrumented program is a program that includes additional code added to the original program to gather statistical and behavioral information regarding the program.
- this instrumentation adds overhead that may affect the gathered data.
- the additional overhead may change which program events actually occur in the program and may alter the relative ordering of program events.
- a cross-thread event is a program event involving a first program thread that provides a signal to a second thread, with the second thread being required to wait for the signal.
- the timing variations that are introduced by instrumentation can cause cross-thread events to become non-cross-thread events, and vice versa. Additional overhead may potentially serialize or dramatically increase the runtime for the program.
- conventional performance analysis tools utilized with multithreading applications generally do not take into account that the tool itself may be changing the program behavior. Because of the unintended changes in program operation, conventional tools do not provide a sufficiently accurate portrayal of the original program execution flow. For example, conventional performance analysis tools merely report how much overhead a thread has experienced within its own execution and do not take into account how cross-thread events may effect the amount of overhead a thread has experienced due to thread interaction. Further, such tools do not allow a user to establish the amount of acceptable overhead or to adjust analysis in response to system performance.
- FIG. 1 a is an illustration of rationing of overhead for a cross-thread event in an embodiment of the invention
- FIG. 1 b is an illustration of rationing of overhead for a non-cross-thread event in an embodiment of the invention
- FIG. 2 is an illustration of an analysis tool under an embodiment of the invention
- FIG. 3 illustrates adaptive filtering in an embodiment of the invention
- FIG. 4 is a graph to illustrate dynamic modification of data collection in an embodiment of the invention.
- FIG. 5 is a flow chart to illustrate dynamic filtering of data in an embodiment of the invention.
- FIG. 6 is a block diagram of an embodiment of a computer system that may include filtering of data collected from a multithreaded program.
- a method and apparatus are described for adaptive and dynamic filtering for analysis of threaded programs.
- Cross-thread event means a program event in which a program thread waits before receiving a signal from another program thread.
- Overhead means slowdown for a computer program. Overhead includes slowdown for individual threads caused by a profiling system.
- adaptive and dynamic filtering is provided for analysis of threaded programs.
- a performance analysis tool includes filtering of program events.
- overhead incurred by a performance analysis system is maintained at an acceptable level, thereby maintaining an instrumented program's overall runtime slowdown at an acceptable level.
- an attempt is made to match the accuracy of statistics for a profiled program's synchronization behavior with the original program's statistics.
- slowdown of a program is limited by filtering synchronization events.
- a performance analyzer includes an adaptive filter to control the overhead resulting from the performance analyzer. In an embodiment, the performance analyzer determines how overhead should be rationed when inter-thread events such as cross-thread events occur. In an embodiment of the invention, a system includes an adaptive filter mechanism that ignores cross-thread events that occur when a multithreaded application profile disturbs the relative order of events such that a non-cross-thread event becomes a cross-thread event.
- a performance analyzer includes a dynamic filter to manage the overhead resulting from the performance analyzer.
- the performance tool may adjust a monitoring threshold and thus modify program overhead ratio and the number of events that are observed.
- a performance analyzer filters events to limit the total amount of overhead incurred. For example, less significant data may be ignored in order to keep measurement overhead within acceptable levels and thus to gather more accurate statistics.
- a system includes a dynamic threshold filter mechanism to ignore certain events based on the amount of runtime slowdown a user running the application is willing to accept and the amount of data that the user wishes the analyzer to capture.
- An embodiment of the invention tracks overhead for each thread in an instrumented program, including overhead that a thread experiences through interaction with another thread.
- An embodiment of a program analysis tool may allow increased accuracy in analysis of a multithreaded program because the tool does not ignore the overhead from program instrumentation or how the overhead changes the flow of execution in the program.
- An embodiment allows a user to control the amount of overhead the user is willing to tolerate while still capturing the most significant event data through the run of a program.
- an analysis tool such as a thread profiler that analyzes operation of a multithreaded program, includes an adaptive filter mechanism or process.
- the adaptive filter directs that each thread keep track of the amount of overhead time that is incurred because of program instrumentation.
- overhead for each program thread may be tracked as follows:
- Timers may be used to track how long each instrumented thread spends within the analysis library.
- Instrumentation overhead is accurately tracked for each thread and each thread's overhead is adjusted based on interactions with other threads.
- An embodiment of the invention may provide a more accurate measure of how much overhead the instrumentation of an application creates for each thread, as well as a more accurate picture of which events would have occurred without the instrumentation effects. If accurate overhead tracking for each thread is available, it is possible to track which cross-thread events may or may not have occurred in the original system.
- the tracking cross-thread events includes storing the value of a program thread's overhead before a wait occurs, and then checking how much overhead the thread has experienced after the wait operation.
- overhead that the second thread has experienced may be taken into account for the first thread's overhead value.
- overhead is rationed as follows:
- FIG. 1 a is an illustration of rationing of overhead for a cross-thread event in an embodiment of the invention.
- T 1 110 begins waiting at time A 130 for a signal from T 2 115 .
- a signal 120 is sent from T 2 115 and arrives at time B 135 .
- T 1 110 would wait for a wait period 125 that is equal to B ⁇ A.
- profiling and analysis of the program can affect this event.
- T 2 115 if thread T 2 115 has some overhead, there would be a delay in T 2 115 sending the message and T 1 110 would need to wait a slightly longer time, such as until a later time C 145 to receive the message 120 . In an embodiment of the invention, because this extra bit of time would not have been present in the original execution of the program, then the extra time is added to the overhead of T 1 110 .
- FIG. 1 b is an illustration of rationing of overhead for a non-cross-thread event in an embodiment of the invention.
- a first program thread (T 1 ) 155 and a second program thread (T 2 ) 160 are again shown against time 150 .
- a signal 165 is again sent from T 2 160 to T 1 155 .
- T 1 155 begins waiting for the message at a time D 170
- the message 165 also arrives at time D 170 , and thus there is no wait period and the event should be non-cross-threaded.
- overhead can change this result.
- T 1 155 may start waiting at time E 175 while the signal 165 may not arrive until time F 180 and a wait will occur, transforming a non-cross-thread event into a cross-thread event.
- the wait time is added to the overhead of thread T 1 155 .
- T 1 155 may have more overhead than T 2 160 .
- the point at which thread T 1 155 would begin waiting may be delayed to time E 175 while the signal 165 arrives at time D 170 , which would have no effect on waiting by T 1 155 since the signal 165 arrives before waiting would begin.
- no overhead is added to T 1 155 because the operation of this thread is not affected by the any overhead of T 2 160 .
- FIG. 2 is an illustration of an analysis tool under an embodiment of the invention.
- a first program thread (T 1 ) 205 and a second program thread (T 2 ) 210 are shown.
- T 1 205 receives a signal 215 from T 2 210 .
- the message event may or may not be a cross-thread event.
- An analysis tool in the form of a thread profiler 220 analyzes the operation of the program threads.
- the profiler 220 may be a part of an instrumented application.
- the profiler 220 may add overhead to T 1 205 and T 2 210 and thus affect the nature and timing of the passing of the signal 215 between the threads.
- the profiler 220 has certain components, the components including an adaptive filter 225 and a dynamic filter 230 .
- the adaptive filter 225 allows the profiler to determine the rationing of overhead between T 1 205 and T 2 210 .
- the dynamic filter 230 allows the profiler to modify the collection of data based on performance of the program.
- data is recorded locally regarding the time each thread spends in the analysis library of the profiler 220 and the instrumentation count for a given type of API (application program interface) in the thread.
- the collected data is utilized in filtering collected performance data.
- because overhead measurements are kept locally on a per thread basis there is minimal performance cost associated with adding the overhead tracking mechanism.
- cross-thread events that would not have occurred without instrumentation are not tracked. By not tracking cross-thread events that would not have occurred without instrumentation, the amount of memory storage and the amount of overhead associated with tracking program events is reduced.
- FIG. 3 illustrates adaptive filtering in an embodiment of the invention.
- a new event occurs 305 .
- the event involves the transfer of a signal between threads, with a first thread (T 1 ) receiving a signal from a second thread (T 2 ).
- the event may or may not be cross-threaded.
- performance analysis utilizing thread instrumentation may add overhead to the operation of the threads, which may change the nature of the event.
- the local overhead for this event is recorded 310 and the local overhead from the previous thread instrumentation is added 315 .
- the wait for the signal is performed 325 and there is a determination whether the difference of the T 2 overhead minus the T 1 overhead is greater than the wait time 330 . In one embodiment, if the difference is greater than the wait time (thus indicating that that the cross-thread event likely would not have occurred in the original program), then the wait time is added to the T 1 overhead 335 and the process is completed 350 . In another embodiment, the event may be ignored because it likely would not have occurred without the profiler performing instrumentation and analysis of the original program.
- the difference is less than the wait time (thus indicating that the cross-thread event likely would have occurred in the original program)
- a time value threshold may be set, with less significant cross-thread events that fall under the threshold being filtered out and ignored. The process of ignoring events below the threshold may be used to maintain an acceptable ratio to overhead time versus user time, while still attempting to collect sufficient data.
- the threshold is dynamic with respect to time such that a desired ratio of overhead may be maintained or a desired percentage of data may be observed.
- a user may specify certain parameters for dynamic filtering, such as a desired acceptable ratio of overhead time to user time, a worst-case ratio of overhead time to user time, and a desired minimal percentage of data to capture.
- certain parameters for dynamic filtering such as a desired acceptable ratio of overhead time to user time, a worst-case ratio of overhead time to user time, and a desired minimal percentage of data to capture.
- a dynamic algorithm functions over a particular time interval.
- the time interval will vary with the particular embodiment.
- the time interval may include a minimum sum of overhead time and a minimum number of events observed.
- a thread profiler may define a time interval as including at least 1 millisecond of overhead and 500 events.
- the algorithm tracks the ratio of overhead time to user time as well as the total overhead time and number of events seen.
- the algorithm will examine the overhead time to user time ratio and the percentage of events that are observed, and will adjust the time value threshold as necessary based at least in part on such elements.
- an algorithm for dynamic filtering may be as follows:
- FIG. 4 is a graph to illustrate an embodiment of dynamic filtering of data.
- FIG. 4 illustrates the current state of a thread profiler as a function of the ratio between overhead time and user time 405 , and the percentage of data that is collected 410 .
- lines are shown to indicate an acceptable overhead level 450 and a worst-case overhead level 455 .
- a line is shown to indicate acceptable percentage of data collected 445 .
- the indicated levels thus divide the graph space into six regions, the regions being:
- an operation in Region 5 435 or Region 6 440 has too much overhead.
- the dynamic filter may reduce the amount of data collected 460 in order to move towards Region 3 425 or Region 4 430 .
- an operation in Region 2 420 or Region 4 430 has acceptable overhead but is collecting insufficient data.
- the dynamic filter allows an increase in the collection of data 465 in order to move towards Region 1 415 or Region 3 425 .
- an operation in Region 3 425 is collecting enough data but overhead is greater than is desired.
- the dynamic filter may reduce the amount of data collected 470 in order to move towards Region 1 415 .
- Region 1 415 there is an acceptable amount of data being collected and the program is below the acceptable overhead threshold.
- FIG. 5 is a flow chart to illustrate dynamic filtering of data in an embodiment of the invention.
- an application is examined for a certain time interval.
- the ratio of overhead time to user time is determined for the time interval 505 .
- the total time and number of events seen during the interval are determined 510 .
- a dynamic time threshold is increased to filter out more data and thus to reduce the ratio below the worst-case ratio 520 . Otherwise there is a determination whether the amount of data captured is less than the minimum data level for the operation 525 . If so (indicating that the current analysis state is in Region 2 420 or Region 4 430 in FIG. 4 ), the dynamic time threshold is decreased to filter out less data and attempt to capture the desired amount of data 530 . If not, there is determination whether the overhead to user time ratio is greater than a desired ratio level 535 .
- the dynamic time threshold is increased to filter out more data and reduce the overhead ratio to below the acceptable level 540 . If not (indicating that the current analysis state is in Region 1 415 in FIG. 4 ), then the dynamic time threshold is reduced to filter out less data while the overhead ratio remains below the acceptable ratio level 545 . After the appropriate modification of the dynamic time threshold, the threshold is used for another time interval and the process continues with the determination of data for the interval 505 and 510 .
- an algorithm may be used to determine how much to dynamically modify a threshold for filtering based on a requested amount of data to be filtered.
- a system records the average wait time for a cross-thread event during a previous interval and the standard deviation of the wait times for the events of the previous interval. Assuming a “bell-curve” normal distribution (also commonly referred to as a Gaussian distribution), the system calculates an estimate of what time value is needed to result in the requested percentage of data captured for the next interval. In one example, if the percentage of data captured is 100%, but the overhead is twice the worst-case ratio, then it would be desirable to capture only 50% of the data.
- FIG. 6 is block diagram of an embodiment of a computer system that may provide that may include filtering of data collected from a multithreaded program.
- a computer 600 comprises a bus 605 or other communication means for communicating information, and a processing means such as two or more processors 610 (shown as a first processor 615 and a second processor 620 ) coupled with the first bus 605 for processing information.
- the processors 610 may comprise one or more physical processors and one or more logical processors.
- the processors 610 are capable of running multithreaded applications.
- a multithreaded application includes instrumentation for evaluating the operation of the application.
- the computer 600 further comprises a random access memory (RAM) or other dynamic storage device as a main memory 625 for storing information and instructions to be executed by the processors 610 .
- Main memory 625 also may be used for storing temporary variables or other intermediate information during execution of instructions by the processors 610 .
- an instrumented application is loaded into main memory 625 .
- the computer 600 also may comprise a read only memory (ROM) 630 and/or other static storage device for storing static information and instructions for the processors 610 .
- ROM read only memory
- a data storage device 635 may also be coupled to the bus 605 of the computer 600 for storing information and instructions.
- the data storage device 635 may include a magnetic disk or optical disc and its corresponding drive, flash memory or other nonvolatile memory, or other memory device. Such elements may be combined together or may be separate components, and utilize parts of other elements of the computer 600 .
- the computer 600 may also be coupled via the bus 605 to a display device 640 , such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or any other display technology, for displaying information to an end user.
- a display device such as a cathode ray tube (CRT) display, a liquid crystal display (LCD), a plasma display, or any other display technology, for displaying information to an end user.
- the display device may be a touch-screen that is also utilized as at least a part of an input device.
- display device 640 may be or may include an audio device, such as a speaker for providing audio information.
- An input device 645 may be coupled to the bus 605 for communicating information and/or command selections to the processors 610 .
- input device 645 may be a keyboard, a keypad, a touch-screen and stylus, a voice-activated system, or other input device, or combinations of such devices.
- cursor control device 650 such as a mouse, a trackball, or cursor direction keys for communicating direction information and command selections to the one or more processors 610 and for controlling cursor movement on the display device 640 .
- a communication device 655 may also be coupled to the bus 605 .
- the communication device 655 may include a transceiver, a wireless modem, a network interface card, or other interface device.
- the computer 600 may be linked to a network or to other devices using the communication device 655 , which may include links to the Internet, a local area network, or another environment.
- the computer 600 may also comprise a power device or system 660 , which may comprise a power supply, a battery, a solar cell, a fuel cell, or other system or device for providing or generating power.
- the power provided by the power device or system 660 may be distributed as required to elements of the computer 600 .
- the present invention may include various processes.
- the processes of the present invention may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor or logic circuits programmed with the instructions to perform the processes.
- the processes may be performed by a combination of hardware and software.
- Portions of the present invention may be provided as a computer program product, which may include a machine-readable medium having stored thereon instructions, which may be used to program a computer (or other electronic devices) to perform a process according to the present invention.
- the machine-readable medium may include, but is not limited to, floppy diskettes, optical disks, CD-ROMs (compact disk read-only memory), and magneto-optical disks, ROMs (read-only memory), RAMs (random access memory), EPROMs (erasable programmable read-only memory), EEPROMs (electrically-erasable programmable read-only memory), magnet or optical cards, flash memory, or other type of media/machine-readable medium suitable for storing electronic instructions.
- the present invention may also be downloaded as a computer program product, wherein the program may be transferred from a remote computer to a requesting computer by way of data signals embodied in a carrier wave or other propagation medium via a communication link (e.g., a modem or network connection).
- a communication link e.g., a modem or network connection
Abstract
Description
-
- (1) If the overhead of the second thread minus the overhead of the first thread is greater than the wait time, then the wait operation would likely not have been observed in the original program as it would be uncontended (the signal would have occurred before the wait operation). In one embodiment, because the wait likely would not have occurred, the entire wait time is added to the overhead of the first thread. In another embodiment, events that likely would not have occurred in the original program are ignored and the wait time is not tracked.
- (2) If the overhead of the second thread minus the overhead of the first thread is not greater than the wait time, then the cross-thread event likely would have occurred in the original program (the program without instrumentation). A determination is made whether the difference of the overhead of the second thread minus the overhead of the first thread is greater than zero, and the overhead is rationed as follows: (a) If the difference is greater than zero, then wait period has likely increased from what would have occurred in the original program, and the difference is added to the overhead of the first thread. (b) If the difference is not greater than zero, and then it is likely that the wait time in the original program would have been longer, and the overhead of the threads is not modified.
if ( overhead ratio > worst-case ratio ) then: | ||
increase the dynamic time threshold to an amount that should filter | ||
out a greater percentage of the data in an attempt to reduce | ||
the overhead ratio to the worst case ratio; | ||
else if ( data captured < minimum percentage of data desired to be | ||
captured ) then: | ||
decrease the dynamic time threshold to an amount that should filter | ||
out a smaller percentage of the data in an attempt to capture | ||
more data to the desired amount of data; | ||
else if ( overhead ratio > desired acceptable overhead ratio ) then: | ||
increase the dynamic time threshold in an attempt to filter out more | ||
data and reduce the amount of overhead to the acceptable | ||
overhead ratio; | ||
else: | ||
decrease the dynamic time threshold in an attempt to gather more | ||
data while still remaining below the acceptable overhead | ||
ratio. | ||
-
-
Region 1 415—Overhead ratio is belowacceptable level 450 and the percentage of data collected is above acceptable data level 445 (best case); -
Region 2 420—Overhead ratio is belowacceptable level 450, but percentage of data collected is belowacceptable data level 445; -
Region 3 425—Overhead ratio is above theacceptable level 450 but below the worst-case level 455, with the percentage of data being above theacceptable data level 445; -
Region 4 430—Overhead ratio is above theacceptable level 450 but below the worst-case level 455, with the percentage of data collected being below theacceptable data level 445; -
Region 5 435—Overhead ratio is above theworst case level 455, with percentage of data collected being above theacceptable data level 445; and -
Region 6 440—Overhead ratio is above the worst-case level 455 and the percentage of data collected is below the acceptable data level 445 (worst case).
-
New Threshold=Average Wait Time+Standard Deviation*F(percentage of data desired)
where F(x) is a table that maps the number of standard deviations required to get a desired percentage of data for a normal distribution. The table is commonly referred to as the “z-table”.
Claims (14)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/026,687 US7703094B2 (en) | 2004-12-30 | 2004-12-30 | Adaptive and dynamic filtering of threaded programs |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/026,687 US7703094B2 (en) | 2004-12-30 | 2004-12-30 | Adaptive and dynamic filtering of threaded programs |
Publications (2)
Publication Number | Publication Date |
---|---|
US20060150162A1 US20060150162A1 (en) | 2006-07-06 |
US7703094B2 true US7703094B2 (en) | 2010-04-20 |
Family
ID=36642170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/026,687 Active 2029-02-19 US7703094B2 (en) | 2004-12-30 | 2004-12-30 | Adaptive and dynamic filtering of threaded programs |
Country Status (1)
Country | Link |
---|---|
US (1) | US7703094B2 (en) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148039A1 (en) * | 2006-11-30 | 2008-06-19 | Computer Associates Think, Inc. | Selecting instrumentation points for an application |
US20090138884A1 (en) * | 2007-11-22 | 2009-05-28 | Kakeda Tomoaki | Storage management system, a method of monitoring performance and a management server |
US20110199902A1 (en) * | 2010-02-12 | 2011-08-18 | Cisco Technology, Inc., A Corporation Of California | Automatic Adjusting of Reputation Thresholds in Order to Change the Processing of Certain Packets |
US20220052975A1 (en) * | 2019-03-08 | 2022-02-17 | Snap Inc | Chat highlights |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020087949A1 (en) * | 2000-03-03 | 2002-07-04 | Valery Golender | System and method for software diagnostics using a combination of visual and dynamic tracing |
US8312435B2 (en) * | 2000-12-26 | 2012-11-13 | Identify Software Ltd. (IL) | System and method for conditional tracing of computer programs |
US7386839B1 (en) | 2002-11-06 | 2008-06-10 | Valery Golender | System and method for troubleshooting software configuration problems using application tracing |
US8032866B1 (en) | 2003-03-27 | 2011-10-04 | Identify Software Ltd. | System and method for troubleshooting runtime software problems using application learning |
WO2005081110A2 (en) * | 2004-02-13 | 2005-09-01 | Memento Inc. | System and method for instrumenting a software application |
US8612479B2 (en) * | 2004-02-13 | 2013-12-17 | Fis Financial Compliance Solutions, Llc | Systems and methods for monitoring and detecting fraudulent uses of business applications |
US9978031B2 (en) | 2004-02-13 | 2018-05-22 | Fis Financial Compliance Solutions, Llc | Systems and methods for monitoring and detecting fraudulent uses of business applications |
US9026467B2 (en) * | 2004-02-13 | 2015-05-05 | Fis Financial Compliance Solutions, Llc | Systems and methods for monitoring and detecting fraudulent uses of business applications |
US7827539B1 (en) * | 2004-06-25 | 2010-11-02 | Identify Software Ltd. | System and method for automated tuning of program execution tracing |
US7899817B2 (en) * | 2005-10-05 | 2011-03-01 | Microsoft Corporation | Safe mode for inverse query evaluations |
GB0912507D0 (en) | 2009-07-17 | 2009-08-26 | Skype Ltd | Reducing processing resources incurred by a user interface |
US9183109B2 (en) * | 2010-05-25 | 2015-11-10 | Intel Corporation | Method and system for analyzing the performance of multi-threaded applications |
US20130283101A1 (en) * | 2012-04-18 | 2013-10-24 | The Regents Of The University Of Michigan | Trace-Driven Verification of Multithreaded Programs Using SMT-Based Analysis |
US10089696B2 (en) * | 2012-05-09 | 2018-10-02 | Intel Corporation | Budget-aware event information collection during program execution |
US10102003B2 (en) * | 2012-11-01 | 2018-10-16 | International Business Machines Corporation | Intelligent context management |
US10078518B2 (en) * | 2012-11-01 | 2018-09-18 | International Business Machines Corporation | Intelligent context management |
US9258315B2 (en) * | 2014-01-13 | 2016-02-09 | Cisco Technology, Inc. | Dynamic filtering for SDN API calls across a security boundary |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477165B1 (en) * | 1997-06-16 | 2002-11-05 | Adaptec, Inc. | Broadcast command packet protocol for SCSI interface |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US6785768B2 (en) * | 1997-12-24 | 2004-08-31 | Avid Technology, Inc. | Computer system and process for transferring streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6901582B1 (en) * | 1999-11-24 | 2005-05-31 | Quest Software, Inc. | Monitoring system for monitoring the performance of an application |
US6993453B2 (en) * | 2003-10-28 | 2006-01-31 | International Business Machines Corporation | Adjusted monitoring in a relational environment |
US7140022B2 (en) * | 2000-06-02 | 2006-11-21 | Honeywell International Inc. | Method and apparatus for slack stealing with dynamic threads |
US7266726B1 (en) * | 2003-11-24 | 2007-09-04 | Time Warner Cable Inc. | Methods and apparatus for event logging in an information network |
US7269824B2 (en) * | 2003-02-13 | 2007-09-11 | Path Reliability, Inc. | Software behavior pattern recognition and analysis |
US7415699B2 (en) * | 2003-06-27 | 2008-08-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling execution of a child process generated by a modified parent process |
-
2004
- 2004-12-30 US US11/026,687 patent/US7703094B2/en active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6477165B1 (en) * | 1997-06-16 | 2002-11-05 | Adaptec, Inc. | Broadcast command packet protocol for SCSI interface |
US6785768B2 (en) * | 1997-12-24 | 2004-08-31 | Avid Technology, Inc. | Computer system and process for transferring streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
US6901582B1 (en) * | 1999-11-24 | 2005-05-31 | Quest Software, Inc. | Monitoring system for monitoring the performance of an application |
US6625654B1 (en) * | 1999-12-28 | 2003-09-23 | Intel Corporation | Thread signaling in multi-threaded network processor |
US7140022B2 (en) * | 2000-06-02 | 2006-11-21 | Honeywell International Inc. | Method and apparatus for slack stealing with dynamic threads |
US7269824B2 (en) * | 2003-02-13 | 2007-09-11 | Path Reliability, Inc. | Software behavior pattern recognition and analysis |
US7415699B2 (en) * | 2003-06-27 | 2008-08-19 | Hewlett-Packard Development Company, L.P. | Method and apparatus for controlling execution of a child process generated by a modified parent process |
US6993453B2 (en) * | 2003-10-28 | 2006-01-31 | International Business Machines Corporation | Adjusted monitoring in a relational environment |
US7266726B1 (en) * | 2003-11-24 | 2007-09-04 | Time Warner Cable Inc. | Methods and apparatus for event logging in an information network |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080148039A1 (en) * | 2006-11-30 | 2008-06-19 | Computer Associates Think, Inc. | Selecting instrumentation points for an application |
US9009680B2 (en) * | 2006-11-30 | 2015-04-14 | Ca, Inc. | Selecting instrumentation points for an application |
US20090138884A1 (en) * | 2007-11-22 | 2009-05-28 | Kakeda Tomoaki | Storage management system, a method of monitoring performance and a management server |
US20110199902A1 (en) * | 2010-02-12 | 2011-08-18 | Cisco Technology, Inc., A Corporation Of California | Automatic Adjusting of Reputation Thresholds in Order to Change the Processing of Certain Packets |
US8797866B2 (en) * | 2010-02-12 | 2014-08-05 | Cisco Technology, Inc. | Automatic adjusting of reputation thresholds in order to change the processing of certain packets |
US20140313891A1 (en) * | 2010-02-12 | 2014-10-23 | Cisco Technology, Inc., A Corporation Of California | Automatic Adjusting of Reputation Thresholds in Order to Change the Processing of Certain Packets |
US9832134B2 (en) * | 2010-02-12 | 2017-11-28 | Cisco Technology, Inc | Automatic adjusting of reputation thresholds in order to change the processing of certain packets |
US20220052975A1 (en) * | 2019-03-08 | 2022-02-17 | Snap Inc | Chat highlights |
US11616749B2 (en) * | 2019-03-08 | 2023-03-28 | Snap Inc. | Chat highlights |
Also Published As
Publication number | Publication date |
---|---|
US20060150162A1 (en) | 2006-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7703094B2 (en) | Adaptive and dynamic filtering of threaded programs | |
CN107864071B (en) | Active safety-oriented dynamic data acquisition method, device and system | |
US7721268B2 (en) | Method and system for a call stack capture | |
US9323651B2 (en) | Bottleneck detector for executing applications | |
US7493234B2 (en) | Monitoring and reporting normalized device system performance | |
US5067107A (en) | Continuous computer performance measurement tool that reduces operating system produced performance data for logging into global, process, and workload files | |
US7076397B2 (en) | System and method for statistical performance monitoring | |
CN101595457A (en) | Load balanced profiling | |
US20060161399A1 (en) | Scalability test and analysis | |
US20060130001A1 (en) | Apparatus and method for call stack profiling for a software application | |
CN103109276B (en) | System detection method | |
US8082275B2 (en) | Service model flight recorder | |
EP2438523A1 (en) | System and method for collecting application performance data | |
CN112131075B (en) | Method and equipment for detecting abnormality of storage monitoring data | |
CN111309502A (en) | Solid state disk service life prediction method | |
US20230153189A1 (en) | Visualization system for debug or performance analysis of soc systems | |
CN110633255B (en) | Method and device for acquiring user use duration | |
CN113903389A (en) | Slow disk detection method and device and computer readable and writable storage medium | |
US10078447B2 (en) | Memory activity driven adaptive performance measurement | |
US7962692B2 (en) | Method and system for managing performance data | |
US6370494B1 (en) | Simulator and computer-readable recordable medium having program for execution on computer realizing the simulator recorded thereon | |
CN112988892B (en) | Distributed system hot spot data management method | |
US20140245082A1 (en) | Implementing client based throttled error logging | |
EP0352462A2 (en) | Method and apparatus for calculating disk-access footprints | |
CN116682479A (en) | Method and system for testing enterprise-level solid state disk time delay index |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTEL CORPORATION,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MONGKOLSMAI, EKARAT T.;ARMSTRONG, DOUGLAS R.;SHAH, SANJIV M.;REEL/FRAME:017214/0504 Effective date: 20050303 Owner name: INTEL CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MONGKOLSMAI, EKARAT T.;ARMSTRONG, DOUGLAS R.;SHAH, SANJIV M.;REEL/FRAME:017214/0504 Effective date: 20050303 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552) Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |