When I originally added this I did not understand how dtrace worked well enough.
Turns out we do not need any of this runtime instrumentation and we can just
dynamically instrument the calls.
This commit rips out the all of the static calls and replaces the old
runtime_statistics dtrace file with a new one that does the dynamic
instrumentation for you. To do this one does the following:
sudo dtrace -s ./swift/utils/runtime_statistics.d -c "$CMD"
The statistics are currently focused around dynamic retain/release counts.
Now if you want to get these dynamic metrics from the runtime all you
need to do is:
1. Configure Swift with -DSWIFT_RUNTIME_ENABLE_DTRACE=YES
2. Run your routine with the command:
sudo dtrace -s ./utils/runtime_statistics.d -c "$MY_COMMAND_LINE"
After your app finishes running, it will dump out the counts. This is a
much more efficient and low maintenance way to get such statistics than
custom instrumenting the code.
Nothing is changed if -DSWIFT_RUNTIME_ENABLE_DTRACE is not set.
Swift SVN r25264