{"action":"created","issue":{"url":"https://api.github.com/repos/nodejs/node/issues/2138","labels_url":"https://api.github.com/repos/nodejs/node/issues/2138/labels{/name}","comments_url":"https://api.github.com/repos/nodejs/node/issues/2138/comments","events_url":"https://api.github.com/repos/nodejs/node/issues/2138/events","html_url":"https://github.com/nodejs/node/issues/2138","id":93922649,"number":2138,"title":"Process startup time on ARM","user":{"login":"rvagg","id":495647,"avatar_url":"https://avatars.githubusercontent.com/u/495647?v=3","gravatar_id":"","url":"https://api.github.com/users/rvagg","html_url":"https://github.com/rvagg","followers_url":"https://api.github.com/users/rvagg/followers","following_url":"https://api.github.com/users/rvagg/following{/other_user}","gists_url":"https://api.github.com/users/rvagg/gists{/gist_id}","starred_url":"https://api.github.com/users/rvagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvagg/subscriptions","organizations_url":"https://api.github.com/users/rvagg/orgs","repos_url":"https://api.github.com/users/rvagg/repos","events_url":"https://api.github.com/users/rvagg/events{/privacy}","received_events_url":"https://api.github.com/users/rvagg/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/nodejs/node/labels/arm","name":"arm","color":"9944dd"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":12,"created_at":"2015-07-09T00:43:28Z","updated_at":"2015-08-28T06:06:28Z","closed_at":null,"body":"@nodejs/build are talking about how to improve test time on the ARM machines and we're tackling it on multiple fronts. However, by far the biggest challenge we're facing with the test suite is `node` process startup time and this isn't something we can do much about from our end so I'm wondering if others here (@bnoordhuis, @trevnorris, others?) can offer suggestions about if and how we might be able to improve things.\r\n\r\nOn a Pi1 B+ (ARMv6):\r\n\r\n```\r\n$ time ./iojs -pe process.versions\r\n{ http_parser: '2.5.0',\r\n  node: '2.3.4-pre',\r\n  v8: '4.2.77.20',\r\n  uv: '1.6.1',\r\n  zlib: '1.2.8',\r\n  ares: '1.10.1-DEV',\r\n  modules: '44',\r\n  openssl: '1.0.2c' }\r\n\r\nreal\t0m3.148s\r\nuser\t0m2.950s\r\nsys\t0m0.160s\r\n\r\n$ time ./iojs -pe true\r\ntrue\r\n\r\nreal\t0m3.172s\r\nuser\t0m2.990s\r\nsys\t0m0.140s\r\n$ time ./iojs -v\r\nv2.3.4-pre\r\n\r\nreal\t0m0.035s\r\nuser\t0m0.010s\r\nsys\t0m0.010s\r\n```\r\n\r\nWhich explains why we can't get below ~2.5h  for build+test (we've managed to squeeze the build part of that down to ~12m with aggressive caching strategies).\r\n\r\nThen this:\r\n\r\n```\r\n$ strace ./iojs -pe true 2>&1 | wc\r\n   3690   23609  218443\r\n```\r\n\r\nvs this on an x64 machine:\r\n\r\n```\r\n$ strace ./iojs -pe true 2>&1 | wc\r\n    327    2038   23875\r\n```\r\n\r\nWhich seems like a huge discrepancy to me, even considering the architecture differences.\r\n\r\nI can't recall the details of what happened with snapshots on ARM but they are currently on by default, even on ARM now:\r\n\r\n```\r\n$ grep snapshot config.gypi \r\n                 'v8_use_snapshot': 1,\r\n```\r\n\r\nAnyone want to take a look or suggest ways to investigate this further?"},"comment":{"url":"https://api.github.com/repos/nodejs/node/issues/comments/135643414","html_url":"https://github.com/nodejs/node/issues/2138#issuecomment-135643414","issue_url":"https://api.github.com/repos/nodejs/node/issues/2138","id":135643414,"user":{"login":"rvagg","id":495647,"avatar_url":"https://avatars.githubusercontent.com/u/495647?v=3","gravatar_id":"","url":"https://api.github.com/users/rvagg","html_url":"https://github.com/rvagg","followers_url":"https://api.github.com/users/rvagg/followers","following_url":"https://api.github.com/users/rvagg/following{/other_user}","gists_url":"https://api.github.com/users/rvagg/gists{/gist_id}","starred_url":"https://api.github.com/users/rvagg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rvagg/subscriptions","organizations_url":"https://api.github.com/users/rvagg/orgs","repos_url":"https://api.github.com/users/rvagg/repos","events_url":"https://api.github.com/users/rvagg/events{/privacy}","received_events_url":"https://api.github.com/users/rvagg/received_events","type":"User","site_admin":false},"created_at":"2015-08-28T06:06:28Z","updated_at":"2015-08-28T06:06:28Z","body":"I think we've had a minor improvement via some recent changes, still too slow and it's doing so much more on arm than x86."}}