{"action":"created","issue":{"url":"https://api.github.com/repos/iojs/io.js/issues/158","labels_url":"https://api.github.com/repos/iojs/io.js/issues/158/labels{/name}","comments_url":"https://api.github.com/repos/iojs/io.js/issues/158/comments","events_url":"https://api.github.com/repos/iojs/io.js/issues/158/events","html_url":"https://github.com/iojs/io.js/issues/158","id":51892862,"number":158,"title":"RFC: bundle tick processor with iojs","user":{"login":"bnoordhuis","id":275871,"avatar_url":"https://avatars.githubusercontent.com/u/275871?v=3","gravatar_id":"","url":"https://api.github.com/users/bnoordhuis","html_url":"https://github.com/bnoordhuis","followers_url":"https://api.github.com/users/bnoordhuis/followers","following_url":"https://api.github.com/users/bnoordhuis/following{/other_user}","gists_url":"https://api.github.com/users/bnoordhuis/gists{/gist_id}","starred_url":"https://api.github.com/users/bnoordhuis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bnoordhuis/subscriptions","organizations_url":"https://api.github.com/users/bnoordhuis/orgs","repos_url":"https://api.github.com/users/bnoordhuis/repos","events_url":"https://api.github.com/users/bnoordhuis/events{/privacy}","received_events_url":"https://api.github.com/users/bnoordhuis/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/iojs/io.js/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":18,"created_at":"2014-12-13T16:54:02Z","updated_at":"2015-03-22T22:46:47Z","closed_at":null,"body":"See bnoordhuis/node-profiler#11 for background.  A recurring issue with CPU profiling with `--prof` is that you either need to build d8 (the V8 shell) or install a tick processor package from npm.\r\n\r\nThe problem with building d8 is that it's quite tedious and frequently broken due to the way V8 is bundled.  Installing a tick processor is no picnic either; if it doesn't match the V8 version, it produces bogus output.  That isn't currently solvable from user land because the output from the profiler doesn't contain version information and heuristics aren't reliable enough.  I'm going to prepare a patch that adds version information but that is a tangential issue.  (Update: https://codereview.chromium.org/800293002/)\r\n\r\nFor ease of use, I propose bundling the tick processor with iojs, either as a standalone JS script (working name: `ioprof`) or by baking it into the binary.  The former would be easiest short-term, the latter offers an arguably nicer user experience.  I volunteer to do the work.\r\n\r\nDesign decisions:\r\n\r\n* Add a `--without-ioprof` to the configure script, similar to the `--without-npm` flag?  Assertion without hard data to back it up: no one uses `--without-npm`; `--without-ioprof` is probably not worth the hassle.\r\n\r\n* What about distro packagers that build against an external V8?  We would normally copy the tick processor files from deps/v8/tools but that won't work when compiling against headers only.  The best I can come up with for now is to disable the profiler script when `--shared-v8` is specified.  Maybe @jbergstroem can chime in here."},"comment":{"url":"https://api.github.com/repos/iojs/io.js/issues/comments/84725857","html_url":"https://github.com/iojs/io.js/issues/158#issuecomment-84725857","issue_url":"https://api.github.com/repos/iojs/io.js/issues/158","id":84725857,"user":{"login":"bnoordhuis","id":275871,"avatar_url":"https://avatars.githubusercontent.com/u/275871?v=3","gravatar_id":"","url":"https://api.github.com/users/bnoordhuis","html_url":"https://github.com/bnoordhuis","followers_url":"https://api.github.com/users/bnoordhuis/followers","following_url":"https://api.github.com/users/bnoordhuis/following{/other_user}","gists_url":"https://api.github.com/users/bnoordhuis/gists{/gist_id}","starred_url":"https://api.github.com/users/bnoordhuis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bnoordhuis/subscriptions","organizations_url":"https://api.github.com/users/bnoordhuis/orgs","repos_url":"https://api.github.com/users/bnoordhuis/repos","events_url":"https://api.github.com/users/bnoordhuis/events{/privacy}","received_events_url":"https://api.github.com/users/bnoordhuis/received_events","type":"User","site_admin":false},"created_at":"2015-03-22T22:46:47Z","updated_at":"2015-03-22T22:46:47Z","body":"@Andre-487 v8-profiler doesn't profile C++ code.  Or rather, it does but it dumps it all in one big bucket named `(program)` (IIRC.)"}}