|
|
|
|
|
для: pina
(28.09.2008 в 00:56)
| | Всем спасибо flock то что надо, работает достаточно стабильно | |
|
|
|
|
|
|
|
для: xx77
(28.09.2008 в 13:29)
| | >говорят что в windows обязательно нужно flock()
чтобы прочесть файл, который никто не собирается менять?
Больше слушайте всякие бредни. | |
|
|
|
|
|
|
|
для: Trianon
(28.09.2008 в 13:14)
| | говорят что в windows обязательно нужно flock()
но я не думаю что без flock() что-то изменится,
вся надежда на какие-нибудь базы данных :) | |
|
|
|
|
|
|
|
для: xx77
(28.09.2008 в 12:55)
| | Зачем вообще блокировать файл tables.sql , если в него никто не вносит изменения? | |
|
|
|
|
|
|
|
для: xx77
(28.09.2008 в 13:00)
| | забыл сказать что файл tables.sql был меньше пяти килобайт | |
|
|
|
|
|
|
|
для: ddhvvn
(28.09.2008 в 11:33)
| | я никак не собирался снизить способность системы раздавать файлы в порядке живой очереди
я так и сказал что почти ничего нельзя сделать в случае с перезаписью
но всегда что-то бывает быстрее , например чтение - освобождение и только потом запись,
при одновременном доступе такое возможно с записью каждой программой только в свой участок файла | |
|
|
|
|
|
|
|
для: BinLaden
(28.09.2008 в 11:17)
| | я говорил о другом
если положить в папку /home/new/public.html/ три файла
test.php
<?
function rfs() {
global $time;
$l = 0;
$path = '/home/new/public_html/';
$f = fopen($path .'tables.sql', 'r');
flock($f, 5);
while($str = fgets($f, 1024))
{
$str = preg_replace('#a|b|c|d|e|f |g|ef|jk|j#i', "\t", $str);
$l += strlen($str);
}
flock($f, 3);
fclose($f);
$f = fopen($path .'count.txt', 'a');
flock($f, 6);
list($m, $tempt) = sscanf(microtime(), '%f %u');
fputs($f, sprintf ("%.7f\n", (($tempt += $m) - $time) ));
flock($f, 3);
fclose($f);
}
$i=0;
while(($i++)<20) {
list($m, $time) = sscanf(microtime(), '%f %u');
$time += $m;
virtual( 'test2.php' );
list($m, $time) = sscanf(microtime(), '%f %u');
$time += $m;
virtual( 'test3.php') ;
}
?>
|
и test2.php , test3.php примерно такого содержания
<?php
register_shutdown_function('rfs');
?><hr/>
|
и считать что файл count.txt
создастся сам или он уже есть с нужными правами
, то запустив и прочитав после этот count.txt всё очвидно )
моё личное мнение что при большой посещаемости не может
не сказаться на скорости включение абсолютно везде одного файла.
если только он небольшой, и надолго не занимается | |
|
|
|
|
|
|
|
для: xx77
(28.09.2008 в 10:55)
| | И как же интересно Вы собрались "снизить" его?
Вам нужна такая функция, чтобы мощность компьютера увеличивалась до такого уровня, чтобы файлы читались мгновенно за верям меньше времени запуска 1 скрипта? )) | |
|
|
|
|
|
|
|
для: xx77
(28.09.2008 в 10:55)
| | > flock() наверное не то , тут как-раз обратное, нужно снизить время на которое занят один и тот-же файл
Это как раз то. | |
|
|
|
|
|
|
|
для: ddhvvn
(28.09.2008 в 10:04)
| | flock() наверное не то , тут как-раз обратное, нужно снизить время на которое занят один и тот-же файл
EXP как всегда невнимательно читал вопрос, или внимательно прочитал , но забыл в процессе ответа ;)
А так, зависит от того, для чего этот файл скриптам, если просто считывается , то это не слишком много занимает времени , если ещё обработка всех данных идёт после считывания и закрытия файла, с includе() тоже всё быстро происходит.
Пробовал random()'но генерировать имя файла, чтобы везде включать один из нескольких одинаковых файлов,,
не заметил особой разницы во времени генерации страниц, или недостаточно много смог запустить одновременных обращений.
Если файл нужен для чтения и записи, то почти ничего нельзя сделать, только по возможности уменьшить время работы с ним.
Заметные задержки из-за такого могут быть только при одновременных штук ста, наверное, перезаписях файла.
Но смотря какой файл , и для чего он. | |
|
|
|
|