Re: [RFC \ WISH] Add -o option to git-rev-list

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Sunday, December 10, 2006 - 3:16 pm

On Sun, 10 Dec 2006, Marco Costalba wrote:

Why do you seem to be doing a "new" on every iteration inside the loop?

Also, why do you have that strange FILE_BLOCK_SIZE thing, and in 
particular the "if (len < FILE_BLOCK_SIZE)" check? One thing that pipes vs 
files do is the blocking factor.

Especially with older kernels, I _guarantee_ you that you'll only ever get 
4kB at a time, so because of that "if (len < 64kB) break" thing, the only 
thing you're doing is to make sure things suck performance-wise, and you 
won't be reading the rest of the data until 100ms later.

IOW, your code is written for a file, and makes no sense there either 
(checking "feof(file)" is wrong, since you may well have hit the EOF 
*at*that*time*, but the file may GROW since you are doing it all in the 
background, so you can't rely on feof() anyway).

For a pipe, what you should do is to make sure it's in nonblocking mode, 
and just continue reading until it gets no more. And instead of using a 
timeout, you should use poll() or something to get notified when there is 
more data.

IOW, the reason it's slow is because you're doing the wrong thing.

		Linus
-
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 4:38 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Alex Riesen, (Sun Dec 10, 7:54 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 11:16 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 12:51 pm)
globs in partial checkout?, Michael S. Tsirkin, (Sun Dec 10, 1:00 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 1:08 pm)
Re: globs in partial checkout?, Linus Torvalds, (Sun Dec 10, 1:13 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 1:19 pm)
Re: globs in partial checkout?, Michael S. Tsirkin, (Sun Dec 10, 2:07 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 3:05 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 3:09 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 3:16 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 3:35 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 3:53 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Sun Dec 10, 5:15 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Sun Dec 10, 5:51 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 12:17 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Josef Weidendorfer, (Mon Dec 11, 2:26 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Alex Riesen, (Mon Dec 11, 3:00 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Andreas Ericsson, (Mon Dec 11, 4:39 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 5:52 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 5:59 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Josef Weidendorfer, (Mon Dec 11, 6:28 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Andreas Ericsson, (Mon Dec 11, 6:40 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 9:59 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 10:07 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 10:28 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 10:39 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 11:15 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Mon Dec 11, 11:59 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 12:25 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Josef Weidendorfer, (Mon Dec 11, 1:28 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 1:40 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Josef Weidendorfer, (Mon Dec 11, 1:54 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Mon Dec 11, 2:14 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Fri Dec 15, 11:45 am)
Re: [RFC \ WISH] Add -o option to git-rev-list, Linus Torvalds, (Fri Dec 15, 12:20 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Fri Dec 15, 1:41 pm)
Re: [RFC \ WISH] Add -o option to git-rev-list, Marco Costalba, (Fri Dec 15, 2:04 pm)