From:
<and...@er...> - 2003-08-05 07:20:04
|
Dear folks, how would you design a generic timing function? My first stumbling = efforts are not good enough: def timeIt(oper): start =3D System.currentTimeMillis() oper() stop =3D System.currentTimeMillis() timeInSec =3D (stop-start)/1000.0 print "Execution time:", timeInSec One would like to pass all arguments to the supplied operation, but=20 def timeIt(oper, args): start =3D System.currentTimeMillis() oper(args) stop =3D System.currentTimeMillis() timeInSec =3D (stop-start)/1000.0 print "Execution time:", timeInSec does not cut it, of course, since there may be more than one argument = to oper. Thanks! /Andreas -- Andreas Jakobik, Ericsson AB=20 =C4L/EAB/UKB/D, Room: 2203004 Phone: +46 8 5687 6203 |
From: Bent A. S. <be...@be...> - 2003-08-05 08:54:23
|
Hi Andreas! The following example should provide you with a solution to the problem of passing more than one parameter to the funtion you wish to time: ### import java.lang.System as System import time def timeIt(oper, *args): start =3D System.currentTimeMillis() oper(*args) stop =3D System.currentTimeMillis() timeInSec =3D (stop-start)/1000.0 print "Execution time:", timeInSec def test(param1, param2, param3): time.sleep(0.5) print param1, param2, param3 timeIt(test, "foo", 2, "bar") ### However, you should consider using the profile module if you wish to time your functions... It might be unsuitable for your needs, though... # Using the profile module... import profile profile.run('test("foo", 2, "bar")') /Bent > -----Original Message----- > From: jyt...@li...=20 > [mailto:jyt...@li...] On Behalf=20 > Of Andreas Jakobik O (=C4L/EAB) > Sent: 5. august 2003 09:18 > To: 'jython-users' > Subject: [Jython-users] Generic timing function? >=20 >=20 >=20 > Dear folks, >=20 > how would you design a generic timing function? My first=20 > stumbling efforts are not good enough: >=20 > def timeIt(oper): > start =3D System.currentTimeMillis() > oper() > stop =3D System.currentTimeMillis() > timeInSec =3D (stop-start)/1000.0 > print "Execution time:", timeInSec >=20 >=20 > One would like to pass all arguments to the supplied operation, but=20 >=20 > def timeIt(oper, args): > start =3D System.currentTimeMillis() > oper(args) > stop =3D System.currentTimeMillis() > timeInSec =3D (stop-start)/1000.0 > print "Execution time:", timeInSec >=20 > does not cut it, of course, since there may be more than one=20 > argument to oper. >=20 > Thanks! >=20 > /Andreas >=20 > -- > Andreas Jakobik, Ericsson AB=20 > =C4L/EAB/UKB/D, Room: 2203004 > Phone: +46 8 5687 6203 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites=20 > including Data Reports, E-commerce, Portals, and Forums are=20 > available now. Download today and enter to win an XBOX or=20 > Visual Studio .NET.=20 > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet _072303_01/01 _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |
From: Bent A. S. <be...@be...> - 2003-08-05 08:43:01
|
Hi Andreas! The following example should provide you with a solution to the problem of passing more than one parameter to the funtion you wish to time: ### import java.lang.System as System import time def timeIt(oper, *args): start =3D System.currentTimeMillis() oper(*args) stop =3D System.currentTimeMillis() timeInSec =3D (stop-start)/1000.0 print "Execution time:", timeInSec def test(param1, param2, param3): time.sleep(0.5) print param1, param2, param3 timeIt(test, "foo", 2, "bar") ### However, you should consider using the profile module if you wish to time your functions... It might be unsuitable for your needs, though... # Using the profile module... import profile profile.run('test("foo", 2, "bar")') /Bent > -----Original Message----- > From: jyt...@li...=20 > [mailto:jyt...@li...] On Behalf=20 > Of Andreas Jakobik O (=C4L/EAB) > Sent: 5. august 2003 09:18 > To: 'jython-users' > Subject: [Jython-users] Generic timing function? >=20 >=20 >=20 > Dear folks, >=20 > how would you design a generic timing function? My first=20 > stumbling efforts are not good enough: >=20 > def timeIt(oper): > start =3D System.currentTimeMillis() > oper() > stop =3D System.currentTimeMillis() > timeInSec =3D (stop-start)/1000.0 > print "Execution time:", timeInSec >=20 >=20 > One would like to pass all arguments to the supplied operation, but=20 >=20 > def timeIt(oper, args): > start =3D System.currentTimeMillis() > oper(args) > stop =3D System.currentTimeMillis() > timeInSec =3D (stop-start)/1000.0 > print "Execution time:", timeInSec >=20 > does not cut it, of course, since there may be more than one=20 > argument to oper. >=20 > Thanks! >=20 > /Andreas >=20 > -- > Andreas Jakobik, Ericsson AB=20 > =C4L/EAB/UKB/D, Room: 2203004 > Phone: +46 8 5687 6203 >=20 >=20 >=20 > ------------------------------------------------------- > This SF.Net email sponsored by: Free pre-built ASP.NET sites=20 > including Data Reports, E-commerce, Portals, and Forums are=20 > available now. Download today and enter to win an XBOX or=20 > Visual Studio .NET.=20 > http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet _072303_01/01 _______________________________________________ Jython-users mailing list Jyt...@li... https://lists.sourceforge.net/lists/listinfo/jython-users |