views:

37

answers:

1

I'm trying to create a AJAX push implementation in PHP using a Comet long-polling method. My code involves using file_get_contents() to read a file repeatedly to check for any messages to send to the user. To reduce server load, I'm using two text files; one containing the actual command and one acting as a "change notifier", which either is iterated through 0-9 or contains a UNIX timestamp. My question is, how often can I access and read from a small (only a few bytes) file without overloading the server? The push implementation means that I can poll for changes much more often than requesting a file every few seconds, but there's still must be a limit.

If it helps, I'm using the 1&1 Home (Linux) hosting plan, which is shared hosting.

+1  A: 

Assuming you're running a sane os which will cache the 'change notifier' file in ram, the operation would be so cheap as to insignificant. PHP would become a bottleneck way before then.

zepolen
The server still needs to check if the file was updated, though. Although you're right, PHP would be the real limitation. How many threads can it use by default, anyway?
thezachperson31
Really simple benchmark:$ echo "" > a_file$ echo '<?php for ($i=0;$i<100000;$i++) file_get_contents("a_file");' > test.php$ time php test.phpreal 0m1.824suser 0m1.060ssys 0m0.732sOver 50,000 a second.
zepolen