Ollie and Nicholas,
Okay, I ran the perfmon against the assembly, but I really don't see
anything that my eyes can detect what might be the problem. I am not
sure how to interpret the log effectively. There were the items that I
monitored
"\.NET CLR Interop(SDU ATP-BurnIn)\# of CCWs",
"\.NET CLR Interop(SDU ATP-BurnIn)\# of marshalling",
"\.NET CLR Interop(SDU ATP-BurnIn)\# of Stubs",
"\.NET CLR Interop(SDU ATP-BurnIn)\# of TLB exports / sec",
"\.NET CLR Interop(SDU ATP-BurnIn)\# of TLB imports / sec",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\# of current logical
Threads",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\# of current physical
Threads",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\# of current recognized
threads",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\# of total recognized
threads",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\Contention Rate / sec",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\Current Queue Length",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\Queue Length / sec",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\Queue Length Peak",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\rate of recognized threads /
sec",
"\.NET CLR LocksAndThreads(SDU ATP-BurnIn)\Total # of Contentions",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Bytes in all Heaps",
"\.NET CLR Memory(SDU ATP-BurnIn)\# GC Handles",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Gen 0 Collections",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Gen 1 Collections",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Gen 2 Collections",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Induced GC",
"\.NET CLR Memory(SDU ATP-BurnIn)\# of Pinned Objects",
"\.NET CLR Memory(SDU ATP-BurnIn)\# of Sink Blocks in use",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Total committed Bytes",
"\.NET CLR Memory(SDU ATP-BurnIn)\# Total reserved Bytes",
"\.NET CLR Memory(SDU ATP-BurnIn)\% Time in GC",
"\.NET CLR Memory(SDU ATP-BurnIn)\Allocated Bytes/sec",
"\.NET CLR Memory(SDU ATP-BurnIn)\Finalization Survivors",
"\.NET CLR Memory(SDU ATP-BurnIn)\Gen 0 heap size",
"\.NET CLR Memory(SDU ATP-BurnIn)\Gen 0 Promoted Bytes/Sec",
"\.NET CLR Memory(SDU ATP-BurnIn)\Gen 1 heap size",
"\.NET CLR Memory(SDU ATP-BurnIn)\Gen 1 Promoted Bytes/Sec",
"\.NET CLR Memory(SDU ATP-BurnIn)\Gen 2 heap size",
"\.NET CLR Memory(SDU ATP-BurnIn)\Large Object Heap size",
"\.NET CLR Memory(SDU ATP-BurnIn)\Promoted Finalization-Memory from Gen
0",
"\.NET CLR Memory(SDU ATP-BurnIn)\Promoted Finalization-Memory from Gen
1",
"\.NET CLR Memory(SDU ATP-BurnIn)\Promoted Memory from Gen 0",
"\.NET CLR Memory(SDU ATP-BurnIn)\Promoted Memory from Gen 1",
"\Process(SDU ATP-BurnIn)\% Privileged Time",
"\Process(SDU ATP-BurnIn)\% Processor Time",
"\Processor(_Total)\% Processor Time"
I did see pattern develop, but I didn't see a pattern when the
application consumed all the processor time. If any one cares to look
at the log that was captured you can find it here...
http://www.liquid-minds.com/SDU_BurnIn_000002.csv
It is case sensitive. I am not sure what else I should capture. I am
not 100% sure, but I think the problem is in the area with the interop
service. If I disconnect the two external USB devices I don't see the
problem or at least been able to induce it. In order to induce the
problem there is no cookbook method, I just click between windows,
minimize, maximize etc and wait for the application to consume all the
CPU time.
Mark