Some analysis. I believe nodes that are marked <module> mean the time is spent importing the module. This test was done without using the forking server, etc, so it probably has a bit of import time overhead that we will experience on production, but in theory the forking server helps with.
Of the 3.1s it spends to run lp-serve, there isn't a huge 'this is the problem' function. What I do see, are *lots* of <module> overhead.
Once you are passed the imports, you get down into:
.296 serve bzrlib.smart.medium:208
.294 _getConfig canonical.config:192 (11 calls)
.294 accept_bytes bzrlib.smart.protocol: 904
Looking at the top-down view,
1268 <module> lp.codehosting.bzrutils
939 <module> lp.codehosting.vfs
641 <module> lp.codehosting
296 run_server bzrlib.plugins.lpserve:96
So we spend 1268+939+641 = 2.848s just importing the launchpad codebase to do the branch permissions, and only 296ms actually executing the request.
Some analysis. I believe nodes that are marked <module> mean the time is spent importing the module. This test was done without using the forking server, etc, so it probably has a bit of import time overhead that we will experience on production, but in theory the forking server helps with.
Of the 3.1s it spends to run lp-serve, there isn't a huge 'this is the problem' function. What I do see, are *lots* of <module> overhead.
1.268 <module> lp.codehosting. bzrutils vfs.branchfs launchpad. webapp launchpad. webapp. launchpadform browser. launchpadform launchpad. webapp. menu launchpad. webapp. authorization database. sqlbase
.939 <module> lp.codehosting.vfs
.938 <module> lp.codehosting.
.832 <module> canonical.
.831 <module> canonical.
.801 <module> lp.app.
.748 <module> canonical.
.675 <module> canonical.
.641 <module> lp.codehosting
.640 <module> canonical.config
.469 <module> canoniacl.
...
Once you are passed the imports, you get down into: smart.medium: 208 config: 192 (11 calls) smart.protocol: 904
.296 serve bzrlib.
.294 _getConfig canonical.
.294 accept_bytes bzrlib.
Looking at the top-down view, bzrutils plugins. lpserve: 96
1268 <module> lp.codehosting.
939 <module> lp.codehosting.vfs
641 <module> lp.codehosting
296 run_server bzrlib.
So we spend 1268+939+641 = 2.848s just importing the launchpad codebase to do the branch permissions, and only 296ms actually executing the request.
.