Download presentation
Presentation is loading. Please wait.
Published byLoraine Park Modified over 9 years ago
1
INDUSTRIAL PROJECT (234313) ULTRASOUND SCANNER EMBEDDED ONLINE PROFILER Students: Liat Peterfreund, Hagay Myr Supervisor: Mr. Tomer Gal (GE Healthcare)
2
Project Objectives Implement a statistical profiler for an Ultrasound- System (ULS) software that its results will be used for debugging and optimizations. The target platforms are already deployed systems, means – not in a debug-able environment. The profiler should have minimum impact on the examined process and should work efficiently and quickly.
3
Methodology Sampling (halting) the process every pre-defined time interval Collecting call-stacks frames of all the process’ threads in every sample Analyzing the information – resolving the collected frames into their symbols and providing the actual Profiling information.
4
Profiler Overview (1) The user sets-up the profiling session: Profiled process Running process – by its PID or its exact name New process – by the full path of an executable Profiling session duration Profiling session start delay Time interval between samples Stack depth to be examined Minimal thread runtime (threshold) – below it the thread won’t be examined The profiler is then activated and starts to collect the Call-Stacks of all the process’ threads. After collecting the samples, the profiler analyzes the information Resolves the symbols of all the gathered stack-frames Calculates the profiling info for each symbol Relative part of his net runtime (without his sons) out of the total activation time Relative part of his sons’ total runtime out of the total activation time
5
Profiler Overview (2) The profiling mechanism is built of three threads : Main thread – the thread which sets-up, controls and analyzes the profiling session Breaker thread – sends the analyzed process an Exception- Debug-Event of type Breakpoint in a pre-defined frequency Listener thread – listens for Debug-Events from the analyzed process and reacts accordingly to fulfill the following: Maintain the process’ active threads list (Create-Thread and Exit- Thread events) Collect the call-stacks frames of the active threads (Breakpoint- Exception events)
6
Achievements since Midterm (1) Optimized performance Internal console prints at a later time Threshold of minimum activeness of a thread Threads that haven’t been active at all between two consecutive samples are ignored Improved analysis Symbols resolving with cache (for future extensions) The entire stack as the key for analysis Portable implementation DLL, LIB and H files to be used by any application
7
Achievements since Midterm (2) UI support There is a well defined protocol between UI and the profiler The client applications inherits the provided ProfilerClient interface. The client application registers itself with the profiler The client gets an event from the profiler when there is a incoming message. Our GUI uses polling instead of the above mechanism due to compatibility problem between managed and unmanaged syntax
8
Achievements All-Together Fully functional, optimized and deployable Profiler Can be integrated into any developed software Shared library (DLL) to be linked with the developed application Can be used as an independent analysis tool Console tool GUI tool (an extra capability) Windows Form Application Provides a full setup and control interface Views the statistics in a convenient tree-like grid Can be used both in the factory and on the field to analyze, debug and improve the ULS system’s software Presumably will be deployed with future releases of the ULS software
9
Demonstration Lets profile stuff…
10
Conclusions The course exposed us to GE Healthcare company We were given a tour in the GE Healthcare factory, were introduced with both the engineers and the products, from legacy to most recent ultrasound systems The course exposed us to new technologies and environments Windows API and Windows Debugging API Windows Form Application The course improved our skills as software engineers Improved design and coding skills Keep to schedule – deliver what was expected and on time Teamwork – parallelization of the development
11
The End Thanks !
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.