ちょっと遅いけど、さっきfputの速度を計ってみますた。
カウンタを想定し7バイトのファイルを用意して、
256バイトずつ読むのとfilesize()で調べたサイズだけ読んでみた。
ファイルサイズを調べる分のオーバーヘッドがあるせいか
固定値で調べたほうが速かった。無視できるくらいだけど。
ちなみにもっと大きなサイズ(40K弱だったと思う)の場合
filesize()を調べたほうが圧倒的に速かった。
参考までに。

>>37,38
$maxが固定なのは恐らく表示件数・保存件数を一定にしたいからだと思う。
ただ、保存する件数が$max+1になってるけどな。

>>39
それをやるとファイルの一番後ろに書いてしまうことにならない?