Apple patent involves software fingerprinting

Apple patent involves software fingerprinting

An Apple patent (number 20100199266) involving software fingerprinting has appeared at the US Patent & Trademark Office. It relates generally to analyzing software performance, and more particularly, to a system, method, and program for graphically presenting code execution data in order to quickly identify of areas of code which may represent opportunities for optimization.

A system, method, and computer program for analyzing code execution and software performance characteristics are disclosed. Samples of executing code may be taken based on any of a number of various triggers. For example, samples may be triggered based on function calls, such as malloc calls. Alternatively, samples may be triggered based on occurrence of a specified event. Code execution is graphically displayed such that certain patterns may be easily identified. Multiple redundant function calls and areas of code having excessively deep function calls can be readily spotted. Such areas represent opportunities for performance optimization. The inventors are Christinia E. Warren, Sanjay K. Patel and Nathan Slingerland.

Here's Apple's summary of the invention: "In analyzing software performance, the impact of an operation on performance may be considered as a function of cost(operation)*use(operation). Traditional performance tools concentrate more on cost than on use. While prior art tools provide information about where time is being spent and how often functions are called, they do not provide any indication of how the function was called during program execution. To better understand a program's behavior so as to provide insight into how a program may be optimized, use-based tracing would be desirable.

"A need therefore exists for a system, method, and tool for analyzing software performance characteristics that overcomes the limitations of the prior art. The present invention improves upon the prior art by presenting code execution information in such a way that conveys information pertaining to function usage. The present invention provides for the visual display of code execution data such that repetitive patterns and excessively deep function calls can be readily identified as areas in need of improvement (i.e., areas having suspect performance). Thus, the present invention allows for quick and efficient analysis of code execution by quickly finding areas of code that can be improved in order to optimize software performance.

"In accordance with certain embodiments of the present invention, a system, method, and program for analyzing code execution are provided, wherein a number of samples are taken of the code during run-time. For each sample, the program's stack backtrace and other information can be recorded. In accordance with the present invention, sampling is not limited to time-based sampling. Samples may also be taken based on the occurrence of a specified function call (function call sampling). For example, samples may be taken based on the occurrence of a memory allocation call (memory allocation sampling).

"Samples may also be taken based on a specified hardware or operating system ('OS') event such as a crash, page fault, cache miss, instruction stall, or other event of interest (event sampling). A system trace may also be performed in order to understand scheduling behavior. A Java trace may also be performed in order to provide time/allocation tracing in Java. In time-based profiling, each sample may be displayed graphically as a plot of callstack depth versus time. For event-based sampling, each sample may be displayed as a plot of callstack depth versus event number. For malloc-based (i.e., memory-allocation-based) or other function-call-sampling or event-based sampling, each sample may be displayed as a plot of callstack depth versus sample number.

"By graphically displaying code execution chronologically, certain patterns in the code execution paths may be quickly and easily identified. Such patterns represent specific call patterns through the code. For example, repeated patterns in a graph in accordance with the invention indicates loops that walk through the same functions. Once recognized as an area in need of improvement, such areas may be optimized by, for example, removing invariant calculations from within a loop. Furthermore, areas of code having excessively deep function calls can be readily spotted. Such areas generally represent inefficient call sequences which can likely be improved to optimize performance. Oftentimes, dramatic performance gains may be achieved by optimizing only a small number of key functions which are responsible for the vast majority of CPU time used by a program."

 
AAPL
$282.52
Apple Inc.
-1.23
MSFT
$24.38
Microsoft Corpora
-0.11
GOOG
$525.62
Google Inc.
-0.17
MacTech Search:
Community Search:

Introducing the App Hall of Fame!
App discoverability continues to be a real issue. With the fast churn of apps in the App Store, an app has only a few weeks of promotional life in it before it‚Äôs largely forgotten. There are a few things developers can do to fix that, but those... | Read more »
Gobliiins Are Coming
In the midst of the huge Q4 launch schedule, the cult classic, Gobliiins, as well as the rest of the trilogy, are being ported to the iPhone in all of their original glory. The Goblins trilogy was a quirky Atari/Amiga game series from the early 90‚Äôs... | Read more »
myPhoneDesktop – Chrome to iPhone Extens...
Anyone who has used myPhoneDesktop knows that it is a fantastic tool for streamlining your onscreen workflow. Instead of having to type line after line into your phone directly, you can use myPhoneDesktop to type from your computer directly into... | Read more »
Classes Review
Developer: Dustlab Price: $0.99 Version Reviewed: 2.4.7 iPhone Integration Rating: 3 out of 5 stars User Interface Rating: 4 out of 5 stars Re-use / Replay Value Rating: 3 out of 5 stars Overall Rating: 3.33 out of 5 stars | Read more »
AutoVerbal Talking Soundboard Pro helps...
Being able to speak and communicate with others is something that many of us take for granted. It‚Äôs not so easy for many folks though, in particular for individuals with autism spectrum disorders, as well as those who have suffered various brain... | Read more »
Pocketbooth Review
Developer: Project Box Price: $0.99 Version Reviewed: 1.0 iPhone Integration Rating: 4 out of 5 stars User Interface Rating: 4 out of 5 stars Re-use / Replay Value Rating: 4.5 out of 5 stars Overall Rating: 4.17 out of 5 stars | Read more »
Get Your Roast Right With ‘Time To Roast...
Roasting meat, in the cooking world, is about as simple as it gets. The greatest roast recipe I‚Äôve ever found is from Michael Ruhlman‚Äôs website, with the recipe titled, ‚ÄúThe World‚Äôs Most Difficult Roasted Chicken Recipe.‚Äù | Read more »

All contents are Copyright 1984-2010 by Xplain Corporation. All rights reserved. Theme designed by Icreon.
Greetings, and welcome to the new MacTech web site! Our home page is designed to be your Industry Dashboard -- so you can have a snapshot of all that's relevant in the industry in one easy location. Many readers tell us that because the information is updated so frequently, they are now checking the site multiple times a day. Here's a quick run down of the features on the new web site, which can be subtle. We truly hope you register so that we can keep you up to date about new features as they are implemented. And, please use the BETA button in the top right to provide us any feedback, suggestions or bugs. We love to hear from you.