{"action":"created","issue":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2074","repository_url":"https://api.github.com/repos/RobotLocomotion/drake","labels_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2074/labels{/name}","comments_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2074/comments","events_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2074/events","html_url":"https://github.com/RobotLocomotion/drake/issues/2074","id":147828557,"number":2074,"title":"Excessive system load compiling rigid body tree","user":{"login":"mwoehlke-kitware","id":6474409,"avatar_url":"https://avatars.githubusercontent.com/u/6474409?v=3","gravatar_id":"","url":"https://api.github.com/users/mwoehlke-kitware","html_url":"https://github.com/mwoehlke-kitware","followers_url":"https://api.github.com/users/mwoehlke-kitware/followers","following_url":"https://api.github.com/users/mwoehlke-kitware/following{/other_user}","gists_url":"https://api.github.com/users/mwoehlke-kitware/gists{/gist_id}","starred_url":"https://api.github.com/users/mwoehlke-kitware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mwoehlke-kitware/subscriptions","organizations_url":"https://api.github.com/users/mwoehlke-kitware/orgs","repos_url":"https://api.github.com/users/mwoehlke-kitware/repos","events_url":"https://api.github.com/users/mwoehlke-kitware/events{/privacy}","received_events_url":"https://api.github.com/users/mwoehlke-kitware/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/priority:%20high","name":"priority: high","color":"b60205"},{"url":"https://api.github.com/repos/RobotLocomotion/drake/labels/team:%20software%20core","name":"team: software core","color":"0052cc"}],"state":"open","locked":false,"assignee":{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false},"milestone":null,"comments":9,"created_at":"2016-04-12T18:00:41Z","updated_at":"2016-06-20T15:19:43Z","closed_at":null,"body":"Some of drake's source files take an excessive amount of time and memory to compile. `RigidBodyTree{,SDF,URDF}.cpp` are three particular offenders, requiring:\r\n\r\n    RigidBodyTree.cpp     104 sec, 4.1 GiB\r\n    RigidBodyTreeSDF.cpp   83 sec, 3.6 GiB\r\n    RigidBodyTreeURDF.cpp  77 sec, 3.5 GiB\r\n\r\nSince these files are closely related, and therefore have a tendency to get built at the same time by parallel builds, on systems with only 16 GiB of RAM (assuming some running background applications, such as an IDE and web browser), it's entirely possible for this trio to consume all available memory. In particular, my (current) main machine becomes effectively unusable for tens of minutes when this trio of files hits the compile queue due to thrashing.\r\n\r\nThe first source file can be split into pieces, which helps, but the latter two are much less amenable to this process. From some experimentation, the problem *seems* to be due to the various joint classes (commenting out all code except `#include \"joints/DrakeJoints.h\"` still takes 40 sec, 2.1 GiB).\r\n\r\nThe above numbers were produced using `/usr/bin/time --format=%U,%M` to measure hand-compiling the aforementioned files with `-g -O2` (roughly equivalent to `CMAKE_BUILD_TYPE=RelWithDebInfo`). Even with no debug/optimization flags, time and memory use is about half the above numbers, which is still fairly high."},"comment":{"url":"https://api.github.com/repos/RobotLocomotion/drake/issues/comments/227174242","html_url":"https://github.com/RobotLocomotion/drake/issues/2074#issuecomment-227174242","issue_url":"https://api.github.com/repos/RobotLocomotion/drake/issues/2074","id":227174242,"user":{"login":"david-german-tri","id":17437069,"avatar_url":"https://avatars.githubusercontent.com/u/17437069?v=3","gravatar_id":"","url":"https://api.github.com/users/david-german-tri","html_url":"https://github.com/david-german-tri","followers_url":"https://api.github.com/users/david-german-tri/followers","following_url":"https://api.github.com/users/david-german-tri/following{/other_user}","gists_url":"https://api.github.com/users/david-german-tri/gists{/gist_id}","starred_url":"https://api.github.com/users/david-german-tri/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/david-german-tri/subscriptions","organizations_url":"https://api.github.com/users/david-german-tri/orgs","repos_url":"https://api.github.com/users/david-german-tri/repos","events_url":"https://api.github.com/users/david-german-tri/events{/privacy}","received_events_url":"https://api.github.com/users/david-german-tri/received_events","type":"User","site_admin":false},"created_at":"2016-06-20T15:19:43Z","updated_at":"2016-06-20T15:19:43Z","body":"The @mwoehlke-kitware WIP to split RigidBodyTree into pieces is here: https://github.com/mwoehlke-kitware/drake/commit/e7717a062366b81d3b400dddc863c77ce56151f4"}}
{"actor":{"display_login":"david-german-tri"}}