You are here: Re: file_get_contents VS fread « PHP Programming Language « IT news, forums, messages
Re: file_get_contents VS fread

Posted by Jerry Stuckle on 11/07/06 16:48

howa wrote:
> Jerry Stuckle 寫道:
>
>
>>howa wrote:
>>
>>>are there any advantage in replacing all fread() operations with
>>>file_get_contents() ?
>>>
>>>i.e.
>>>
>>>file_get_contents("/usr/local/something.txt")
>>>
>>>VS
>>>
>>>$filename = "/usr/local/something.txt";
>>>$handle = fopen($filename, "r");
>>>$contents = fread($handle, filesize($filename));
>>>fclose($handle);
>>>
>>>is that file_get_contents() is more efficient?
>>>
>>>thanks.
>>>
>>
>>Like almost anything else in programming, "it depends".
>>
>>file_get_contents() can be faster because it's a single call to read
>>the file. But it can also be slower - because it reads the entire
>>file into memory at one time.
>>
>>If you're reading 5MB files, file_get_contents() will take something
>>more than 5MB of RAM. Stack a few of these up and you'll be using
>>a LOT of RAM - maybe too much and the system can start paging.
>>
>>fread(), OTOH, only gets small amounts of data at a time. And yes,
>>for large files it can take longer than file_get_contents(), but for
>>small files I don't think you'll notice any difference.
>>
>>If you're not having performance problems, I'd say don't worry about it.
>>
>>If you are having performance problems, I suggest you figure out where
>>the real bottleneck is. I doubt it's in the use of fread().
>>
>>--
>>==================
>>Remove the "x" from my email address
>>Jerry Stuckle
>>JDS Computer Training Corp.
>>jstucklex@attglobal.net
>>==================
>
>
> well, if the file size is usually less than 100K, and i need to read
> them all once, so file_get_contents() is preferred?
>

If you need to read them all at once, then fine. There won't be a lot
of memory difference between reading everything in one
file_get_contents() and multiple fread()s.

The question is - do you? Are you operating on the entire file at one
time? Most cases unless I'm actually writing a file to the browser I
find I'm only working on a small piece at a time

--
==================
Remove the "x" from my email address
Jerry Stuckle
JDS Computer Training Corp.
jstucklex@attglobal.net
==================

 

Navigation:

[Reply to this message]


Удаленная работа для программистов  •  Как заработать на Google AdSense  •  England, UK  •  статьи на английском  •  PHP MySQL CMS Apache Oscommerce  •  Online Business Knowledge Base  •  DVD MP3 AVI MP4 players codecs conversion help
Home  •  Search  •  Site Map  •  Set as Homepage  •  Add to Favourites

Copyright © 2005-2006 Powered by Custom PHP Programming

Сайт изготовлен в Студии Валентина Петручека
изготовление и поддержка веб-сайтов, разработка программного обеспечения, поисковая оптимизация