оптимизация непонятной функции из темы "Класс по работе с бд"

Денч

Новичок
_RVK_
Тему можно считать закрытой. Crazy поставил в ней точку свои ответом. Твой же пост можно расценивать как попытку развязать спор насчет целесообразности использования ООП в ASP, JSP, Perl, что уже бессмысленно в связи с ответом Crazy.

PS. Я не умею работать на Perl. Что касается ASP, то его я вообще не видел.

-~{}~ 23.02.05 19:58:

Оптимизировать? На вот, сможешь оптимизировать? А тоя никак не могу построить цикл так, чтобы один раз считать из файла массив строк, найти в ней те, которые надо удалить, и записать в тот же файл.
PHP:
	 foreach($cats as $f_name=>$category)
	 {
	    $cat_list=file("../notes/lnk/links_$category.link");
		foreach($cat_list as $i=>$head)
		{
			if(strstr($head,$f_name)!==false)
			{
				unset($cat_list[$i]);
				unlink("../notes/cat/$category/$f_name.txt");
			} 
		} 
		$cat_list_res=implode("",$cat_list);
	 
	 $f=fopen("../notes/lnk/links_$category.link","w");
	 fputs($f,implode("",$cat_list));
	 fclose($f);
	 }
 
Денч
Отвечая, я не видел твоего ответа. Так что рад что ты понял))
Оптимизировать? На вот, сможешь оптимизировать? А тоя никак не могу построить цикл так, чтобы один раз считать из файла массив строк, найти в ней те, которые надо удалить, и записать в тот же файл.
Зачем считывать ВСЕ строки? Может стит считать только те которые нужны?
Насчет оптимизировать. Если ты так печешься о скорости, зачем используешь двойные кавычки? Ты же заставляешь пхп парсить такие строки, на что нужно время:)
Но, вообще, рад что ты понял что скорсть это еще не все.
 
Денч, у тебя действительно есть необходимость в оптимизации такого кода? Он оказывает критическое воздействие на производительность системы?
 
Нет, необходимости нет. Просто мне не очень нравится при удалении, скажем 10 строк заставлять систему 10 раз открывать файл и 10 раз записывать в него изменения. (...открыл->удалил строку->записал...)
А могут быть ситуации, когда придется провоlить чистку в некольких файлах. Может это паранойя?

Насчет кавычек. Не знал, что это влияет на скорость парсинга. Возможно, я недостаточно читал про особенности двойных и олинарных кавычек. Учту
 
хм.
как это до оптимизации какого-то левого кода докатилось?
 
Юлин неправильно обрисовал задачу - найти строки, подлежащие удалению, и записать то, что осталось.
А впрочем, неважно. Это чтобы было понятно, что я там делаю. Если считаете, что не имеет значение, сколько будет произведено операций открытий-записи в файл в циклах, не буду беспокоится.

-~{}~ 23.02.05 21:16:

Кто сказал, что дело докатилось до оптимизации?
Разве кто-то станет чего-то там оптимизировать вместо меня?
_RVK_ предложил, я подсунул. А дееспособные люди сами как нибудь решат, чем им заниматься.

Вот Crazy сказал, что оптимизировать необязательно, я и успокоился :)
 
Насчет кавычек. Не знал, что это влияет на скорость парсинга. Возможно, я недостаточно читал про особенности двойных и олинарных кавычек. Учту
Денч
Что за наивность. Двойные кавычки действительно влияют на скорость. Но так незначительно, что на это можно просто не обращать внимания. У тебя параноя, от которой срочно надо избавляться :)
 
Автор оригинала: _RVK_ Двойные кавычки действительно влияют на скорость.
Кавычки - это те же апострофы, только двойные. Так что их обработка примерно в два раза медленнее. А обработка "двойных кавычек" - в четыре раза.
 
Все-все, народ, хватит!!!
А то начал ктото тему про классфы бд, а докатились черт его знает до чего! Уймитесь!
 
Если ты так печешься о скорости, зачем используешь двойные кавычки? Ты же заставляешь пхп парсить такие строки, на что нужно время
ПХП парсит строку, заключенную в двойные кавычки, только в том случае, если в этой строке присутствуют переменные:

PHP:
echo "<h1>single quotes</h1>\n";
print_tokens("<?'test'?>");

echo "<h1>double quotes</h1>\n";
print_tokens('<?"test"?>');

echo "<h1>double quotes with variable</h1>\n";
print_tokens('<?"test$var, other string"?>');

function print_tokens($str)
{
    $tokens = token_get_all($str);
    $n = sizeof($tokens);
    for ($i = 0; $i < $n; $i++) {
        $token = $tokens[$i];
        if (sizeof($token) == 1) {
            $token_value = htmlspecialchars($token);
            echo "token [{$token_value}]<br/>\n";
        } else {
            $token_name = htmlspecialchars(token_name($token[0]));
            $token_value = htmlspecialchars($token[1]);
            echo "token [{$token_name}] value: [{$token_value}]<br/>\n";
        }
    }
}
 
valyala
Я имел ввиду что нужно выносить переменные за строки. Ладно, хоть тема и флеймовая, но то о чем мы сейчас говорим вообше ни в какие ворота не лезет)))
 
Сверху