{"id":140,"date":"2006-11-27T14:03:15","date_gmt":"2006-11-27T18:03:15","guid":{"rendered":"http:\/\/benjamin.smedbergs.us\/blog\/2006-11-27\/mddependpl-stats\/"},"modified":"2006-11-27T14:05:31","modified_gmt":"2006-11-27T18:05:31","slug":"mddependpl-stats","status":"publish","type":"post","link":"http:\/\/benjamin.smedbergs.us\/blog\/2006-11-27\/mddependpl-stats\/","title":{"rendered":"<tt>mddepend.pl<\/tt> stats"},"content":{"rendered":"<p>My <a href=\"http:\/\/benjamin.smedbergs.us\/blog\/2006-11-22\/depths-of-the-mozilla-build-system\/\">last post<\/a> mentioned that mddepend.pl causes our build system to do many extra calls to stat(). I&#8217;ve done some instrumentation and come up with the following numbers (Linux, Firefox trunk):<\/p>\n<table>\n<thead>\n<tr>\n<th>\n<th>Calls to <tt>mddepend.pl<\/tt><\/p>\n<th>mddepend calls to <code>stat()<\/code><\/p>\n<tbody>\n<tr>\n<th>New objdir<\/p>\n<td>336<\/p>\n<td>65832<\/p>\n<tr>\n<th>Nothing-changed rebuild<\/p>\n<td>1148<\/p>\n<td>224536<br \/>\n<\/table>\n<p>When building from scratch, there isn&#8217;t any need to call <tt>mddepend.pl<\/tt>: all the invocations and <code>stat()<\/code>s performed are unnecessary overhead. When doing a rebuild, some portion of the stats performed are necessary\/expected, but nowhere near as many as are actually performed. I expect a full two-thirds of the calls to <tt>mddepend.pl<\/tt> are unnecesary, and probably 90% of the calls to <tt>stat()<\/tt>. The 224k stats in the depend build checked 16599 unique files, which means that a good stat cache reduces the size of the problem significantly.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My last post mentioned that mddepend.pl causes our build system to do many extra calls to stat(). I&#8217;ve done some instrumentation and come up with the following numbers (Linux, Firefox trunk): Calls to mddepend.pl mddepend calls to stat() New objdir 336 65832 Nothing-changed rebuild 1148 224536 When building from scratch, there isn&#8217;t any need to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2],"tags":[30],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-mozilla","tag-build-system"],"_links":{"self":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":0,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"wp:attachment":[{"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/benjamin.smedbergs.us\/blog\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}