Can you make this faster?
William Park
opengeometry at yahoo.ca
Sun Jun 27 23:21:46 EDT 2004
More information about the Python-list mailing list
Sun Jun 27 23:21:46 EDT 2004
- Previous message (by thread): Can you make this faster?
- Next message (by thread): Can you make this faster?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
William Park <opengeometry at yahoo.ca> wrote: > Kamilche <klachemin at home.com> wrote: > > def fmtstring(args): > > delim = '\0' > > fmt = [] > > fmt.append('<') > > for arg in args: > > t = type(arg) > > if t == types.StringType: > > l = len(arg) > > fmt.append(str(l) + 's') > > elif t == types.IntType: > > fmt.append('i') > > elif t == types.LongType: > > fmt.append('q') > > elif t == types.BooleanType: > > fmt.append('c') > > elif t == types.FloatType: > > fmt.append('d') > > else: > > raise Exception("Can't pack argument of type %s!" % t) > > s = ''.join(fmt) > > s = s + '\0' > > return s > > String concatenation ('+') is main culprit. Avoid it. > > Before After > ------ ----- > str(l) + 's' fmt.append (str(l)) > fmt.append ('s') > > s = ''.join(fmt) fmt.append ('\0') > s = s + '\0' ''.join(fmt) Also, change 'fmt.append' and 'types.*' with a version without '.', ie. fmtappend = fmt.append types_s = types.StringType stringjoin = string.join -- William Park, Open Geometry Consulting, <opengeometry at yahoo.ca> Q: What do you use to remove bugs on Windows? A: Windex.
- Previous message (by thread): Can you make this faster?
- Next message (by thread): Can you make this faster?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list