Description
In 'connect' mode, nearly all of the process information for every discoverable process is recomputed for every http call. This is very inefficient and can lead to inconsistency of data between calls. For example, one the tests makes slightly different /process
calls and validates that the identifier information is consistent between calls. The results from one of these runs is:
- PID: 2449
UID: 00000000-0000-0000-0000-000000000000
Name: dotnet
- PID: 2449
UID: 00000000-0000-0000-0000-000000000000
Name: unknown
- PID: 2449
UID: 00000000-0000-0000-0000-000000000000
Name: dotnet
Note that the name is "unknown" for the second call, but was successfully computed for the prior and subsequent calls.
The tool should try to (1) for process information that requires "lengthy" computation (issuing ProcessInfo command, use event source trace to get command line information, etc), allow those computations to continue but stop waiting for their result for the current request after a short period of time, and (2) cache any successfully computed information for aspects that will not change over the lifetime of the process.