Are there some more exact metrics on how much time complexity APM adds to a particular program?
I ran some pretty rudimentary tests on my machine and was wondering if there are some more official numbers. My basic test was just running the same function, one with APM off:
And one with it on:
The function itself is really just designed to take up some time.
With it on:
Elapsed Time: 13.7355453 seconds
Elapsed Time: 12.0428342 seconds
Elapsed Time: 13.19944 seconds
Elapsed Time: 12.2065772 seconds
Elapsed Time: 13.244451 seconds
Which seems like a relatively steep increase. Obviously this isn't perfectly representative of the actual code we'd be running but it would be a lot more complicated to write code that would be closer to the real code, so I was hoping the APM community might have more metrics on this available.
Unfortunately we still didn't get to measuring .NET Agent performance overhead for the representative use cases - we have an issue for this task in the backlog and I hope we will get to it soon.
Regarding your particular example - I would still advise measuring a use case that is closer to your actual application code - at least this is what we plan to do for the planned benchmarks.
@LordMathis Do you really think your benchmark is fair? In the second iteration (with the apm agent enabled) you do lots of system calls to stdout. I count 4 of them before you call Watch.Stop(). I/O is not cheap and would likely increase the elapsed time you posted.
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.