bugmake - Bugs: bug #16140, make 3.81rc2: performance decrease...

 
 

bug #16140: make 3.81rc2: performance decrease when searching builtin implicit rules compared to 3.80

Submitter:  None
Submitted:  Tue 21 Mar 2006 02:33:03 PM UTC
   
 
Severity:  3 - Normal Item Group:  Enhancement
Status:  Fixed Privacy:  Public
Assigned to:  bosk Open/Closed:  Closed
Component Version:  4.0 Operating System:  Any
Fixed Release:  3.81 Triage Status:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Wed 22 Mar 2006 01:20:01 PM UTC, comment #3: 

The fix is in CVS. I tested it on some build systems that don't use second expansion. Time for CVS was about 25% higher compared to 3.80 (with -r both showed the same time). With the fix the times are the same for both versions, with and without -r.

Boris Kolpackov <bosk>
Group Member
Tue 21 Mar 2006 08:51:24 PM UTC, comment #2: 

If it's a simple-enough change and doesn't cause problems with the regression tests it's fine with me to fix it.  Do you have access to valgrind and/or gprof to check the performance etc.?

Paul D. Smith <psmith>
Group administrator
Tue 21 Mar 2006 08:40:00 PM UTC, comment #1: 

I took a quick look and it appears that we call set_file_variables even if none of the dependencies require it. I think we should call set_file_variables only after we see the first dependency that requires second expansion. Paul, is it ok with you if I fix this for 3.81?

Boris Kolpackov <bosk>
Group Member
Tue 21 Mar 2006 02:33:03 PM UTC, original submission:  

make 3.81rc2 shows a performance decrease of a factor 3 (at least in my case) compared to make 3.80 in the "everything up to date" case. This can be narrowed to the part searching the builtin implicit rules. Running 'make -r' (because the builtins are not necessary in my case) produces identical times for 3.80 and 3.81rc2.

A significant amount of time is spent in set_file_variables() inside pattern_search() which has not been called in 3.80 before. OTOH, less time is spent in file_impossible_p() and file_exists_p() (see attached gprof reports).




Anonymous

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

Attached Files
file #1477:  gprof-reports.tar.gz added by None (21KiB - application/x-gzip - gprof reports for make 3.80 and 3.81rc2)

 

Depends on the following items: None found

Items that depend on this one: None found

 

CC list is empty

 

There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

Only logged-in users can vote.

 

Follow 6 latest changes.

Date Changed by Updated Field Previous Value => Replaced by
2006-04-01 psmith Fixed Release4.0 3.81
2006-03-22 bosk StatusNone Fixed
    Open/ClosedOpen Closed
    Fixed ReleaseNone 4.0
2006-03-21 bosk Assigned toNone bosk
2006-03-21 None Attached File- Added gprof-reports.tar.gz, #3511

Back to the top

Powered by Savane 3.13-d3ae.
Corresponding source code