This is an interesting question since you raised most of the developer profiles on your machines. I'm not sure if there is any other way besides adding a performance profiler to your code. The interesting part that you talked about is that this is based on user feedback and is not necessarily sent to the server all the time.
We could develop a javascript Profiler class that basically compiles:
- Function name
- Round trip time
- Total function execution time
- UserMachineProcessingTime = The total execution time of the function in time.
- Other useful information (similar to what YSlow or similar tools provide)
As you note, it is based on user feedback, we do not need to constantly send this information as each function is called (which makes the application very frequent). Then we collect this information on the client side and possibly store it somewhere (perhaps using local HTML5 storage?)
Only when the user agrees to provide a performance profile, we send this information to the server on which you receive the necessary data. It would also be interesting to see how the user reacts if we tell you how the tiny message โWe notice that your performance is below our average usersโ. Would you like to submit your performance profile so that we can learn and make it better? "(I need a different wording, I feel bad with this, but this is basically a message.) If you answer yes, the profile will send the information it collects + additional information that Javascript can collect (user agent, etc.). Of course, the question is how many users will want to send their profile information, but this is one of the approaches that we could try.
source share