~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to profile_imports.py

  • Committer: wang
  • Date: 2006-10-29 13:41:32 UTC
  • mto: (2104.4.1 wang_65714)
  • mto: This revision was merged to the branch mainline in revision 2109.
  • Revision ID: wang@ubuntu-20061029134132-3d7f4216f20c4aef
Replace python's difflib by patiencediff because the worst case 
performance is cubic for difflib and people commiting large data 
files are often hurt by this. The worst case performance of patience is 
quadratic. Fix bug 65714.

Show diffs side-by-side

added added

removed removed

Lines of Context:
82
82
        # scope_name, frame_name, frame_lineno
83
83
        out_file.write('%5.1f %5.1f %s %-35s\t@ %s:%d\n'
84
84
            % (info[-1]*1000., mod_time*1000., '+'*info[0], 
85
 
               cur[1][:40], info[1], info[2]))
 
85
               cur[1][:35], info[1], info[2]))
86
86
 
87
87
        if sorted:
88
88
            c_times.sort()
115
115
    frame = sys._getframe(1)
116
116
    frame_name = frame.f_globals.get('__name__', '<unknown>')
117
117
    extra = ''
118
 
    cur_frame = 1
119
118
    if frame_name.endswith('demandload'):
120
119
        # If this was demandloaded, we have 3 frames to ignore
121
 
        extra = ' (demandload)'
122
 
        frame = sys._getframe(4)
123
 
        cur_frame = 4
124
 
        frame_name = frame.f_globals.get('__name__', '<unknown>')
 
120
        extra = '(demandload) '
 
121
        frame = sys._getframe(4)
 
122
        frame_name = frame.f_globals.get('__name__', '<unknown>')
 
123
    elif frame_name.endswith('lazy_import'):
 
124
        # If this was lazily imported, we have 3 frames to ignore
 
125
        extra = '[l] '
 
126
        frame = sys._getframe(4)
 
127
        frame_name = frame.f_globals.get('__name__', '<unknown>')
 
128
    if fromlist:
 
129
        extra += ' [%s]' % (', '.join(map(str, fromlist)),)
125
130
    frame_lineno = frame.f_lineno
126
131
 
127
 
    this = stack_add(name+extra, frame_name, frame_lineno, scope_name)
 
132
    this = stack_add(extra + name, frame_name, frame_lineno, scope_name)
128
133
 
129
134
    tstart = time.time()
130
135
    try:
145
150
    # And who is requesting this?
146
151
    frame = sys._getframe(2)
147
152
    frame_name = frame.f_globals.get('__name__', '<unknown>')
 
153
 
 
154
    extra = ''
 
155
    if frame_name.endswith('lazy_regex'):
 
156
        # If this was lazily compiled, we have 3 more frames to ignore
 
157
        extra = '[l] '
 
158
        frame = sys._getframe(5)
 
159
        frame_name = frame.f_globals.get('__name__', '<unknown>')
148
160
    frame_lineno = frame.f_lineno
149
 
 
150
 
    this = stack_add(repr(args[0]), frame_name, frame_lineno)
 
161
    this = stack_add(extra+repr(args[0]), frame_name, frame_lineno)
151
162
 
152
163
    tstart = time.time()
153
164
    try: