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

Денч

Новичок
_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);
	 }
 

_RVK_

Новичок
Денч
Отвечая, я не видел твоего ответа. Так что рад что ты понял))
Оптимизировать? На вот, сможешь оптимизировать? А тоя никак не могу построить цикл так, чтобы один раз считать из файла массив строк, найти в ней те, которые надо удалить, и записать в тот же файл.
Зачем считывать ВСЕ строки? Может стит считать только те которые нужны?
Насчет оптимизировать. Если ты так печешься о скорости, зачем используешь двойные кавычки? Ты же заставляешь пхп парсить такие строки, на что нужно время:)
Но, вообще, рад что ты понял что скорсть это еще не все.
 

Crazy

Developer
Денч, у тебя действительно есть необходимость в оптимизации такого кода? Он оказывает критическое воздействие на производительность системы?
 

Денч

Новичок
Нет, необходимости нет. Просто мне не очень нравится при удалении, скажем 10 строк заставлять систему 10 раз открывать файл и 10 раз записывать в него изменения. (...открыл->удалил строку->записал...)
А могут быть ситуации, когда придется провоlить чистку в некольких файлах. Может это паранойя?

Насчет кавычек. Не знал, что это влияет на скорость парсинга. Возможно, я недостаточно читал про особенности двойных и олинарных кавычек. Учту
 

Frol

Новичок
хм.
как это до оптимизации какого-то левого кода докатилось?
 

Денч

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

-~{}~ 23.02.05 21:16:

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

Вот Crazy сказал, что оптимизировать необязательно, я и успокоился :)
 

_RVK_

Новичок
Насчет кавычек. Не знал, что это влияет на скорость парсинга. Возможно, я недостаточно читал про особенности двойных и олинарных кавычек. Учту
Денч
Что за наивность. Двойные кавычки действительно влияют на скорость. Но так незначительно, что на это можно просто не обращать внимания. У тебя параноя, от которой срочно надо избавляться :)
 

yugene

Отошел от дел
Автор оригинала: _RVK_ Двойные кавычки действительно влияют на скорость.
Кавычки - это те же апострофы, только двойные. Так что их обработка примерно в два раза медленнее. А обработка "двойных кавычек" - в четыре раза.
 

Денч

Новичок
Все-все, народ, хватит!!!
А то начал ктото тему про классфы бд, а докатились черт его знает до чего! Уймитесь!
 

valyala

Новичок
Если ты так печешься о скорости, зачем используешь двойные кавычки? Ты же заставляешь пхп парсить такие строки, на что нужно время
ПХП парсит строку, заключенную в двойные кавычки, только в том случае, если в этой строке присутствуют переменные:

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";
        }
    }
}
 

_RVK_

Новичок
valyala
Я имел ввиду что нужно выносить переменные за строки. Ладно, хоть тема и флеймовая, но то о чем мы сейчас говорим вообше ни в какие ворота не лезет)))
 
Сверху