{"action":"created","issue":{"url":"https://api.github.com/repos/Microsoft/perfview/issues/390","repository_url":"https://api.github.com/repos/Microsoft/perfview","labels_url":"https://api.github.com/repos/Microsoft/perfview/issues/390/labels{/name}","comments_url":"https://api.github.com/repos/Microsoft/perfview/issues/390/comments","events_url":"https://api.github.com/repos/Microsoft/perfview/issues/390/events","html_url":"https://github.com/Microsoft/perfview/issues/390","id":259441676,"number":390,"title":"Lots of CLR functions always end up on broken stacks","user":{"login":"davkean","id":1103906,"avatar_url":"https://avatars1.githubusercontent.com/u/1103906?v=4","gravatar_id":"","url":"https://api.github.com/users/davkean","html_url":"https://github.com/davkean","followers_url":"https://api.github.com/users/davkean/followers","following_url":"https://api.github.com/users/davkean/following{/other_user}","gists_url":"https://api.github.com/users/davkean/gists{/gist_id}","starred_url":"https://api.github.com/users/davkean/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davkean/subscriptions","organizations_url":"https://api.github.com/users/davkean/orgs","repos_url":"https://api.github.com/users/davkean/repos","events_url":"https://api.github.com/users/davkean/events{/privacy}","received_events_url":"https://api.github.com/users/davkean/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2017-09-21T10:00:40Z","updated_at":"2017-10-04T16:18:20Z","closed_at":null,"author_association":"MEMBER","body":"I'm seeing lots of time spend in my traces of clr!COMString::IndexOfAny, clr!ProbablyContains and clr!InitializeProbabilisticMap. However, no matter how many times I record scenarios - usages of these methods almost always end up on a broken stack. I'm basically trying to find the caller to string.IndexOfAny - but to no avail.\r\n\r\nAre there tips to figuring out why this is the case?"},"comment":{"url":"https://api.github.com/repos/Microsoft/perfview/issues/comments/334209873","html_url":"https://github.com/Microsoft/perfview/issues/390#issuecomment-334209873","issue_url":"https://api.github.com/repos/Microsoft/perfview/issues/390","id":334209873,"user":{"login":"vancem","id":8459414,"avatar_url":"https://avatars2.githubusercontent.com/u/8459414?v=4","gravatar_id":"","url":"https://api.github.com/users/vancem","html_url":"https://github.com/vancem","followers_url":"https://api.github.com/users/vancem/followers","following_url":"https://api.github.com/users/vancem/following{/other_user}","gists_url":"https://api.github.com/users/vancem/gists{/gist_id}","starred_url":"https://api.github.com/users/vancem/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vancem/subscriptions","organizations_url":"https://api.github.com/users/vancem/orgs","repos_url":"https://api.github.com/users/vancem/repos","events_url":"https://api.github.com/users/vancem/events{/privacy}","received_events_url":"https://api.github.com/users/vancem/received_events","type":"User","site_admin":false},"created_at":"2017-10-04T16:18:20Z","updated_at":"2017-10-04T16:18:20Z","author_association":"MEMBER","body":"Can you point to a trace with the issue?    \r\n\r\nIf I had to guess, this issue is probably caused by the fact that this is a 32 bit process, and that relies on the C++ compiler generating call frames for methods.   The CLR is compiled in a what where some methods have been told to optimize the frame pointer away (a conscious choice was made to give up on stacks for clr!COMString::IndexOfAny because we wanted the perf more, the others were probably accidentally dragged in).   \r\n\r\nIf this is true, one possible work-around is to run the scenario as a 64 bit process (if possible).   This uses a very different way of crawling stacks that probably will work.   \r\n\r\nAnother work around is to set a breakpoint there in the debugger and do 'poor mans sampling' by simply observing the stacks that occur by hitting 'go' a bunch of times \r\n\r\n"}}
{"actor":{"display_login":"vancem"}}