Uploaded image for project: 'Core Server'
  1. Core Server
  2. SERVER-45041

--link-model=dynamic doubles ninja generation time

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • 4.3.3
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None
    • Fully Compatible
    • ALL
    • Dev Platform 2020-01-27

      Looks like it causes more stat calls and thread locking?

      Welcome to the profile statistics browser.
      profile.out% sort tottime
      profile.out% stats 20
      Tue Dec 10 13:35:03 2019    profile.out
      
               112175380 function calls (108676533 primitive calls) in 146.992 seconds
      
         Ordered by: internal time
         List reduced from 3961 to 20 due to restriction <20>
      
         ncalls  tottime  percall  cumtime  percall filename:lineno(function)
          17926   20.492    0.001   20.492    0.001 {method 'acquire' of '_thread.lock' objects}
          58995    8.523    0.000    8.523    0.000 {built-in method posix.stat}
        6823874    7.841    0.000   13.207    0.000 /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/abc.py:180(__instancecheck__)
      16476347/16475032    7.102    0.000   20.309    0.000 {built-in method builtins.isinstance}
      459806/459759    6.547    0.000    7.716    0.000 {built-in method builtins.__build_class__}
          41834    5.691    0.000    5.691    0.000 {built-in method posix.lstat}
       13504238    5.347    0.000    5.347    0.000 /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/_weakrefset.py:70(__contains__)
      950696/761300    3.617    0.000   11.383    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:428(expand)
      608274/606595    3.556    0.000   37.532    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:403(scons_subst)
      967100/63599    3.286    0.000   68.236    0.001 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:649(expand)
      997806/626032    2.514    0.000   17.452    0.000 {method 'sub' of '_sre.SRE_Pattern' objects}
         757253    2.379    0.000    7.382    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:819(add_new_word)
      861866/5775    2.244    0.000   68.460    0.012 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:732(substitute)
      994424/451922    1.664    0.000   21.653    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:515(substitute)
         779292    1.613    0.000    1.613    0.000 {method 'findall' of '_sre.SRE_Pattern' objects}
         721591    1.548    0.000    1.744    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Subst.py:828(literal)
        5325604    1.492    0.000    6.636    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Util.py:407(is_String)
      608274/606595    1.437    0.000   40.557    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Environment.py:499(subst)
      578927/560017    1.281    0.000    1.674    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Environment.py:2311(__getattr__)
         240078    1.243    0.000   15.985    0.000 /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Environment.py:2023(Entry)
      
      
      profile.out% callers posix.stat
         Ordered by: internal time
         List reduced from 3961 to 1 due to restriction <'posix.stat'>
      
      Function                      was called by...
                                        ncalls  tottime  cumtime
      {built-in method posix.stat}  <-     328    0.003    0.003  /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/genericpath.py:16(exists)
                                           199    0.002    0.002  /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/genericpath.py:27(isfile)
                                          5125    0.020    0.020  /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/genericpath.py:39(isdir)
                                           440    0.002    0.002  /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/linecache.py:53(checkcache)
                                            23    0.000    0.000  /home/chasinglogic/.virtualenvs/mongo/lib/python3.6/linecache.py:82(updatecache)
                                         51466    8.488    8.488  /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Node/FS.py:1131(stat)
                                           150    0.001    0.001  /home/chasinglogic/Work/mongo/src/third_party/scons-3.1.1/scons-local-3.1.1/SCons/Util.py:786(WhereIs)
                                          1264    0.007    0.007  <frozen importlib._bootstrap_external>:75(_path_stat)
      
      
      profile.out% callers _thread.lock
         Ordered by: internal time
         List reduced from 3961 to 5 due to restriction <'_thread.lock'>
      
      Function                                        was called by...
                                                          ncalls  tottime  cumtime
      {method 'acquire' of '_thread.lock' objects}    <-     204    0.000    0.000  /usr/lib/python3.6/threading.py:251(_acquire_restore)
                                                           17121    0.010    0.010  /usr/lib/python3.6/threading.py:254(_is_owned)
                                                             408   20.474   20.474  /usr/lib/python3.6/threading.py:263(wait)
                                                               1    0.000    0.000  /usr/lib/python3.6/threading.py:893(_set_tstate_lock)
                                                             192    0.008    0.008  /usr/lib/python3.6/threading.py:1062(_wait_for_tstate_lock)
      {method '__enter__' of '_thread.lock' objects}  <-   17109    0.082    0.082  /usr/lib/python3.6/threading.py:239(__enter__)
      {method 'release' of '_thread.lock' objects}    <-     204    0.000    0.000  /usr/lib/python3.6/threading.py:248(_release_save)
                                                            8554    0.064    0.064  /usr/lib/python3.6/threading.py:334(notify)
                                                             192    0.000    0.000  /usr/lib/python3.6/threading.py:1062(_wait_for_tstate_lock)
      {method '__exit__' of '_thread.lock' objects}   <-   17109    0.004    0.004  /usr/lib/python3.6/threading.py:242(__exit__)
      {method 'locked' of '_thread.lock' objects}     <-     192    0.000    0.000  /usr/lib/python3.6/threading.py:966(_stop)
      
      

            Assignee:
            mathew.robinson@mongodb.com Mathew Robinson (Inactive)
            Reporter:
            mathew.robinson@mongodb.com Mathew Robinson (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: