Hi Harm and Marius, I did experiement with EMF Notifications but I found it too heavy weight and too fine grained. It's not really useful knowing when a specific attribute is set. There's isn't enough useful context.
Ideally I would like to be able to watch *any* event that occurs as a part of the profile. All of that useful semantic information that comes out of each xml fragment in the trace file shouldn't be dumped straight into the EMF model, everyone should be able to get a handle on these events and process them however they see fit. This would mean some sort of Event publication system and an object model representing every possible item of an XML4Profiling trace. Part of the problem I have with the current EMF model is that I find it very hard to query. I can't work out how to ask the model "tell me about all of the innovcations of method X". The model only feels useful for traversing. But maybe that's because I don't understand all of the code? The concrete example I'm trying to code right now is the rule -> Method execution time is always < 5ms. Ideally I would like to be able to query the statistical trace model and find out where/when the rule was violated. I don't think that's easy right now. To progress it becomes more efficent to evaluate these rules in real time as trace events occur, hence wanting a handle on the trace events. However I know such analysis places quite an overhead on the system. Has anyone considered batching events over the wire to reduce the network overhead? Another part of my project involves modelling "virtual" performance of code based on trace events that occur. For that reason I also want a handle on the events as they come in. I can't do the analysis and simulation I want based on the data in the EMF model Currently I think my main gripe is the EMF model. It's completely orienetated around the views available in the profililer. The statistics I can collect and evaluate aren't generic. There's no way to collect a new statistic. I can only browse the model and find out about the statistics created and placed in the model by the trace loader. I've also got issues because it's hard to get a handle when a trace is happening and grab get at the EMF model easily... Currently it's focused on the current selection in the Profiling UI. This isn't always useful. I'd love to talk about this more. My University project finishes soon (so I don't think I'm going to have written anything like what I wanted) but I'm happy to contribute ideas and/or code. Cheers, Neil On 3/12/07, Harm Sluiman <[EMAIL PROTECTED]> wrote:
Another way to look at this may be to understand what filtered data is needed for a particular analysis. In the cases where this can be a reduction to something manageable in memory, providing the filtering query and using the new access layer, the right data can be provided for further analysis. That query result can be a data source to an analysis engine and so on... However I suspect a lot of analysis will require recursive walking etc. and a closer binding to the data source will be needed to be perfromant where the analysis result or at least the result of some significant data reduction would be the result of a "query". I would agree that live event based analysis is overkill for most use cases, particularly since the time between events in a live cases is typically very small. Thanks for your time. -------------------------------------------------------------------------- Harm Sluiman, STSM, phone:905-413-4032 fax: 4920 cell: 1-647-300-4758 mailto:[EMAIL PROTECTED] Admin : Arlene Treanor [EMAIL PROTECTED] Tie: 969-2323 1-905-413-2323 Marius Slavescu/Toronto/[EMAIL PROTECTED] Sent by: [EMAIL PROTECTED] 03/12/2007 10:39 AM Please respond to TPTP Tracing and Profiling Tools Project developer discussions <tptp-tracing-profiling-tools-dev@eclipse.org> To TPTP Tracing and Profiling Tools Project developer discussions <tptp-tracing-profiling-tools-dev@eclipse.org> cc Subject Re: [tptp-tracing-profiling-tools-dev] Model analysis Hi Neil, Watching EMF notifications could be an overkill, especially when we capture a lot of details in the trace, also adding adapters to Trace EMF objects could increase the footprint considerably for the in-memory case. There are several ways to watch the trace events as they are processed, although there is no easy way to trigger that behavior, basically if you can override the XMLLoader you could watch the loading activity. As I'm working on scalability and performance improvements in 4.4 I will provide different methods of loading/persisting the monitored data (trace, test, statistical) which will may not be based on EMF. If you can list some of the things that you want to monitor as the event data is processed I could probably give you more details of how you could achieve this in a generic way so it will work with any persistence model we will use. I'll be looking into some notification mechanism (not EMF based) and I may provide some support in 4.4, would be good to get some of your requirements and see what can be done in this area in 4.4. Please open an enhancement and specify your requirements there, Thanks ! Marius Slavescu IBM Toronto Laboratory, Canada Phone: 905-413-3610 "Neil Dunn" <[EMAIL PROTECTED]> Sent by: [EMAIL PROTECTED] 03/10/2007 04:29 PM Please respond to TPTP Tracing and Profiling Tools Project developer discussions <tptp-tracing-profiling-tools-dev@eclipse.org> To "TPTP Tracing and Profiling Tools Project developer discussions" <tptp-tracing-profiling-tools-dev@eclipse.org> cc Subject [tptp-tracing-profiling-tools-dev] Model analysis Hi everyone, I'm to implement a rules engine for a profiler. The end aim is to be able to describe you performance rules in Eclipse, exectue a profiling session and have a report generated saying if the rules were satisfied. A basic example is a constraint on the execution time of a method. It seems that the best way to do this based on what is currently available in TPTP is to watch the EMF model and analyse it. However I have the following problems: * There is no uniform way to find out when a trace is occuring and grab the current trace model. I can subscribe to ProfileEvent events to find out when a profile is occuring but the only way I have found to grab the corresponding trace model is use TraceUtil.getMofObject() which returns the currently selected element in the Profiling Monitors view. This feels like a bit of a hack * The most appropriate time to do the analysis is as new profiling events occur (e.g method entry, method exit) however there is no way to hook into this. Each different type of profiling event is handled in it's own way and I have not been able to sucessfully use the Notification API in the EMF model for a trace to catch when events such as method innvocations are occuring. Guru mentioned that someone had written something similar to my idea but specificially for memory analysis. I haven't been able to found this in CVS, could someone point me to the correct module. Thanks in advance for the help. Regards, Neil Dunn _______________________________________________ tptp-tracing-profiling-tools-dev mailing list tptp-tracing-profiling-tools-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/tptp-tracing-profiling-tools-dev _______________________________________________ tptp-tracing-profiling-tools-dev mailing list tptp-tracing-profiling-tools-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/tptp-tracing-profiling-tools-dev _______________________________________________ tptp-tracing-profiling-tools-dev mailing list tptp-tracing-profiling-tools-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/tptp-tracing-profiling-tools-dev
_______________________________________________ tptp-tracing-profiling-tools-dev mailing list tptp-tracing-profiling-tools-dev@eclipse.org https://dev.eclipse.org/mailman/listinfo/tptp-tracing-profiling-tools-dev