On Apr 28, 3:37 pm, "Gabriel Genellina" <[EMAIL PROTECTED]> wrote: > En Sat, 28 Apr 2007 15:48:11 -0300, [EMAIL PROTECTED] > <[EMAIL PROTECTED]> escribió: > > > I have a function in my python like this: > > def callFunc(line, no): > > # some code > > > And I want to do a performance test like this: > > for line in f: > > for i in range(int(count)): > > t1 = timeit.Timer("callFunc(line, i)","from __main__ > > import callFunc") > > r1 = t1.timeit(); > > print r1; > > > but when I run it, it can't recognize the parameter 'line' and 'i', > > can you please tell me how to fix it? i get this error: > > They go in the "setup" parameter, like this: > > t1 = timeit.Timer("callFunc(line, i)","from __main__ import callFunc; > line=%r; i=%d" % (line, i)) >
Thanks I try it: def stressTest(): for line in f: for i in range(int(count)): print i; t1 = timeit.Timer("callFunc(line, i)","from __main__ import callFunc; line=%r; i=%d" % (line, i)) r1 = t1.timeit(); times.append(r1); print r1; But it keeps calling callFunc() and it never returns from my loop. The value of 'count' is 2. Thank you. > If it gets much longer, try this: > > setup = """ > from __main__ import callFunc > line = %r > i = %d""" % (line, i) > stmt = "callFunc(line, i)" > t1 = timeit.Timer(stmt, setup) > > -- > Gabriel Genellina > > PS: Please leave out the final ; - this is Python, not C nor ... > PS2: Perhaps the only place where I've used ; is with timeit. And even > then you can avoid them as in the last example. -- http://mail.python.org/mailman/listinfo/python-list