1. Re: Digest for EUforum at topica.com, issue 3230

> From: "Kat" <gertie at visionsix.com>
> Subject: Re: getc( ) and gets( ) speed
> 
> 
> On 16 Dec 2003, at 8:44, Derek Parnell wrote:
> 
>> 
>> ----- Original Message ----- 
>> From: "Euman" <euman at bellsouth.net>
>> To: <EUforum at topica.com>
>> Sent: Tuesday, December 16, 2003 3:01 AM
>> Subject: Re: getc( ) and gets( ) speed
>> 
>> 
>> [snip]
>> > 
>> > what about 13,10 (crlf) from each line ending
>> > if I have 5000 lines with 201 bytes and I need
>> > only 200,  I would need to bypass the crlf on each
>> > line..
>> > 
>> > This shoot holes in the theory that using getc( )
>> > is faster than gets( ) for most things.
>> > 
>> 
>> Never heard of that theory.
>> 
>> But think about it, you need to call getc() for each and every character
>> inside
>> some form of (slow) Euphoria loop; but gets() only needs to be called for
>> each
>> line (multiple characters per time), so in many circumstances gets() will be
>> faster then getc(). However, gets() only works for text files, it makes a
>> mess
>> of binary files.
> 
> Can 
> FileContents = fgetb(filehandle,1,SizeOfFile) 
> get the entire file without using getc() behind the scene?
> 
> Kat

	iirc, some languages do it the other way round: there's actually a block file 
read on the first getc() (or whatever you call ReadNextByte(handle)). That 
block is cached and the subsequent getc() calls read from the RAM cache block 
for obvious performance gains. In a nutshell, getc() uses fgetb() behind the 
scene actually.
Don't know whether Eu source does this, but it's a quite widespread scheme
afaik.

CChris

new topic     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu