{"action":"created","issue":{"url":"https://api.github.com/repos/facile-it/paraunit/issues/11","labels_url":"https://api.github.com/repos/facile-it/paraunit/issues/11/labels{/name}","comments_url":"https://api.github.com/repos/facile-it/paraunit/issues/11/comments","events_url":"https://api.github.com/repos/facile-it/paraunit/issues/11/events","html_url":"https://github.com/facile-it/paraunit/issues/11","id":107021116,"number":11,"title":"Parallel code coverage","user":{"login":"Jean85","id":6729988,"avatar_url":"https://avatars.githubusercontent.com/u/6729988?v=3","gravatar_id":"","url":"https://api.github.com/users/Jean85","html_url":"https://github.com/Jean85","followers_url":"https://api.github.com/users/Jean85/followers","following_url":"https://api.github.com/users/Jean85/following{/other_user}","gists_url":"https://api.github.com/users/Jean85/gists{/gist_id}","starred_url":"https://api.github.com/users/Jean85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jean85/subscriptions","organizations_url":"https://api.github.com/users/Jean85/orgs","repos_url":"https://api.github.com/users/Jean85/repos","events_url":"https://api.github.com/users/Jean85/events{/privacy}","received_events_url":"https://api.github.com/users/Jean85/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/facile-it/paraunit/labels/enhancement","name":"enhancement","color":"84b6eb"}],"state":"open","locked":false,"assignee":{"login":"Jean85","id":6729988,"avatar_url":"https://avatars.githubusercontent.com/u/6729988?v=3","gravatar_id":"","url":"https://api.github.com/users/Jean85","html_url":"https://github.com/Jean85","followers_url":"https://api.github.com/users/Jean85/followers","following_url":"https://api.github.com/users/Jean85/following{/other_user}","gists_url":"https://api.github.com/users/Jean85/gists{/gist_id}","starred_url":"https://api.github.com/users/Jean85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jean85/subscriptions","organizations_url":"https://api.github.com/users/Jean85/orgs","repos_url":"https://api.github.com/users/Jean85/repos","events_url":"https://api.github.com/users/Jean85/events{/privacy}","received_events_url":"https://api.github.com/users/Jean85/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/facile-it/paraunit/milestones/1","html_url":"https://github.com/facile-it/paraunit/milestones/0.5","labels_url":"https://api.github.com/repos/facile-it/paraunit/milestones/1/labels","id":1311540,"number":1,"title":"0.5","description":null,"creator":{"login":"Jean85","id":6729988,"avatar_url":"https://avatars.githubusercontent.com/u/6729988?v=3","gravatar_id":"","url":"https://api.github.com/users/Jean85","html_url":"https://github.com/Jean85","followers_url":"https://api.github.com/users/Jean85/followers","following_url":"https://api.github.com/users/Jean85/following{/other_user}","gists_url":"https://api.github.com/users/Jean85/gists{/gist_id}","starred_url":"https://api.github.com/users/Jean85/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jean85/subscriptions","organizations_url":"https://api.github.com/users/Jean85/orgs","repos_url":"https://api.github.com/users/Jean85/repos","events_url":"https://api.github.com/users/Jean85/events{/privacy}","received_events_url":"https://api.github.com/users/Jean85/received_events","type":"User","site_admin":false},"open_issues":4,"closed_issues":0,"state":"open","created_at":"2015-09-17T21:37:47Z","updated_at":"2015-10-11T15:11:00Z","due_on":null,"closed_at":null},"comments":7,"created_at":"2015-09-17T16:20:00Z","updated_at":"2015-10-14T11:35:51Z","closed_at":null,"body":"I've started to work to a new feature, a command that produces code coverage with Paraunit.\r\n\r\nI'll merge the branch ASAP, and I'll use this issue to track the progress.\r\n\r\n - [x] Big refactoring\r\n - [x] First working version\r\n - [ ] Support for PHPDBG (PHP7)\r\n - [ ] More testing!\r\n - [x] Merge `feature-coverage` to master\r\n - [x] Create 0.5 milestone and add this issue to it\r\n - [ ] Try to have parallel result merging (recursive + binary approach?)\r\n - [ ] Check for performance issues\r\n\r\n[...]\r\n\r\n - [ ] Tag as 0.5 and close this issue!"},"comment":{"url":"https://api.github.com/repos/facile-it/paraunit/issues/comments/148024128","html_url":"https://github.com/facile-it/paraunit/issues/11#issuecomment-148024128","issue_url":"https://api.github.com/repos/facile-it/paraunit/issues/11","id":148024128,"user":{"login":"ranpafin","id":3133626,"avatar_url":"https://avatars.githubusercontent.com/u/3133626?v=3","gravatar_id":"","url":"https://api.github.com/users/ranpafin","html_url":"https://github.com/ranpafin","followers_url":"https://api.github.com/users/ranpafin/followers","following_url":"https://api.github.com/users/ranpafin/following{/other_user}","gists_url":"https://api.github.com/users/ranpafin/gists{/gist_id}","starred_url":"https://api.github.com/users/ranpafin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ranpafin/subscriptions","organizations_url":"https://api.github.com/users/ranpafin/orgs","repos_url":"https://api.github.com/users/ranpafin/repos","events_url":"https://api.github.com/users/ranpafin/events{/privacy}","received_events_url":"https://api.github.com/users/ranpafin/received_events","type":"User","site_admin":false},"created_at":"2015-10-14T11:35:51Z","updated_at":"2015-10-14T11:35:51Z","body":"I've tried running the coverage with one of the big project (SF2 suite) and the cpu it's always working at full load.\r\n\r\nIn this dstat report you can see the the idle (idl) cpu time is 0 which means that all the cpu's always have something to do.\r\nIf we have performance issue for the parallel coverage is not in the paralization itself, nor is a locking issue else there would be some idle cpu cycle waiting for locks to be released.\r\n\r\n```\r\n----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--\r\nusr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw \r\n 97   3   0   0   0   0|   0   164k|5014B  602B|   0     0 |2895  5083 \r\n 97   3   0   0   0   0|   0  2760k|2879B 3969B|   0     0 |2813  4784 \r\n 98   2   0   0   0   0|   0     0 |  15k 1234B|   0     0 |2979  5057 \r\n 98   2   0   0   0   0|   0   152k|2294B  198B|   0     0 |2862  4805 \r\n 96   4   0   0   0   0|   0   172k|4436B 1881B|   0     0 |3130  5499 \r\n 93   7   0   0   0   0|   0  1056k|2942B 1552B|   0     0 |3057  5793 \r\n 96   4   0   0   0   0|   0   528k|5257B 2718B|   0     0 |2730  4843 \r\n 94   6   0   0   0   0|4096B  152k|2479B  198B|   0     0 |3060  4997 \r\n 94   5   0   0   0   0|   0     0 |4363B  264B|   0     0 |2915  4889 \r\n 91   8   0   0   0   0|   0     0 |2412B  218B|   0     0 |2977  5302 \r\n```\r\n\r\nBut then i went trough the much more faster-to-execute unit tests an there the situation is a lot different:\r\n\r\n```\r\nusr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw \r\n 50  22  29   0   0   0|   0     0 |1671B  215B|   0     0 |4271    32k\r\n 52  19  28   0   0   1|   0   332k|3800B  408B|   0     0 |3991    20k\r\n 44  22  34   0   0   0|   0   204k|1560B  198B|   0     0 |4385    22k\r\n 46  19  35   0   0   1|   0    72k|2465B  198B|   0     0 |4084    25k\r\n 60  18  21   0   0   0|  16k 2600k|  78k   35k|   0     0 |3947    21k\r\n 45  21  34   0   0   0|  12k  396k| 132k   22k|   0     0 |4397    23k\r\n 38  23  39   0   0   1|4096B    0 |3443B  690B|   0     0 |4567    34k\r\n 36  26  39   0   0   0|   0  8192B|2064B  264B|   0     0 |4237    41k\r\n 37  26  37   0   0   0|   0   112k|2243B  198B|   0     0 |4212    37k\r\n```\r\n\r\nAs you can see the csw are skyrocketing which means that we generate a huge number of processes that do only little things so some (many) CPU cycle are wasted in moving in and out the stuff.\r\n\r\nAlso watching the report for a couple of minutes (here it's not clear) i could see that when only when a test-file is completed something i writed down to disk while in the second case the disk i costantly used. So more idle time.\r\n\r\ni will further investigate this... But it's not good news so fare, we may need to change the logic or insert some kind of buffer.\r\n \r\n\r\n"}}