Published : 1 year, 9 months ago (Fri, 27 May 2005 23:35:48 PDT) Searched: http://www.livejournal.com/users/puzanov/31595.html 0 links Related posts
Оказывается, при разработке ПО под win можно использовать централизованное логгирование имплементированное на уровне ядра.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/perfmon/base/event_tracing.asp
Event Tracing for Windows (ETW) A lot of work in performance tuning is organizational. There's only so much work one can do with a profiler and a single module. A good example is the Registry -- we can attach profilers to the Registry access routines and optimize them until they run as smooth as silk, but performance will still be impacted if you do thousands of Registry accesses per second. For many problems, the cause is systemic: several components in a chain of command that are individually well-tuned, but didn't expect to call each other in a huge chain. A good example of that is DirectShow -- no matter how skillfully crafted an individual filter is, if the mean path in a DirectShow graph is ten filters deep (with memory management between each one for passing buffers of audio or video around), latency is going to be high.
More often than not, the best solution is simply logging. Log when filters are instantiated or connected, log when Registry accesses are made, etc.. You want to mark high-level concepts, and try to get a picture for what's going on with the system as a whole. This works fine if you only have one application that has to log... but more often that not, these systemic problems have hundreds of files involved, most of which aren't coded by you! If every programmer performs their logging in a different way, it can be a nightmare to combine all those logs together, mixing different types of timestamps and different methods of delivery, and get a single ordered log of what happened over time. Of course, that's exactly what we need... and that's where Event Tracing for Windows, or ETW for short, comes in.
via ryanmy |