En Mon, 04 Feb 2008 15:53:11 -0200, rdahlstrom <[EMAIL PROTECTED]> escribi�:
> On Feb 4, 10:17 am, Steven D'Aprano <[EMAIL PROTECTED] > cybersource.com.au> wrote: >> >> Suppose you have a whole lot of files, and you need to open each one, >> append a string, then close them. There's two obvious ways to do it: >> group your code by file, or group your code by procedure. >> >> # Method one: grouped by file. >> for each file: >> open the file, append the string, then close it >> >> # Method two: grouped by procedure. >> for each file: >> open the file >> for each open file: >> append the string >> for each open file: >> close the file >> >> If you have N files, both methods make the same number of I/O calls: N >> opens, N writes, N closes. Which is faster? > The code that does more work takes more time. The second one does > quite a bit less work. Think of it like this: > > You have 500,000 people to fit through a door. Here are your options: > > 1. For each person, open the door, walk through the door, then close > the door. > 2. Open the door, allow everyone to walk through, then close the > door. > > Which one would you say would be a more efficient way to fit 500,000 > people through the door? Mmmm, no, the second one should be: 2. Create 500,000 doors and open them. Make each person enter the room -one at a time- using its own door. Close each of the 500,000 doors. -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list