powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Какой парсинг строки будет выполняться быстрее?
12 сообщений из 12, страница 1 из 1
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309335
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
первый вариант, используя конкатенацию:
Код: plaintext
1.
2.
$query = 'SELECT '.$this->select_fields.' FROM '.$this->tablename.
         ' WHERE '.$this->pkey_field.'=\''.$this->pkey_value.'\'';

второй варинт, используя " (двойные кавычки):
Код: plaintext
1.
$query = "SELECT $this->select_fields FROM $this->tablename WHERE $this->pkey_field='$this->pkey_value'";
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309352
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Написал небольшой тестик (возможный не самый удачный), который засекает время на разбор строки.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
<?php

// test of parsing time

require 'myclasses/timer.class.php';

class DynamicSql {

	var $select_fields;
	var $pkey_field;
	var $pkey_value;
	var $tablename;
	
	// constructor
	
	function DynamicSql($tablename, $pkey_field, $pkey_value, $select_fields)
	{
		$this->tablename 	 = $tablename;
		$this->pkey_field 	 = $pkey_field;
		$this->pkey_value	 = $pkey_value;
		$this->select_fields = $select_fields;
	}
	
	// returns select sql query (variant  1 )
	
	function getDynamicSqlQuery1()
	{
		return 'SELECT '.$this->select_fields.' FROM '.$this->tablename.' WHERE '.$this->pkey_field.'=\''.$this->pkey_value.'\'';
	}
	
	// returns select sql query (variant  2 )
		
	function getDynamicSqlQuery2()
	{
		return "SELECT $this->select_fields FROM $this->tablename WHERE $this->pkey_field='$this->pkey_value'";
	}
}

$sql = new DynamicSql('tmp_table', 'id',  1 , 'id, foo, bar');

$t1 = new CTimer();

echo $sql->getDynamicSqlQuery1().'<br>';

$t1->stop();
printf('<u>Parsing time for getDynamicSqlQuery1()</u>: <b>%f</b> sec.', $t1->getPassedTime());

echo '<br><br>';

$t2 = new CTimer();

echo $sql->getDynamicSqlQuery2().'<br>';

$t2->stop();
printf('<u>Parsing time for getDynamicSqlQuery2()</u>: <b>%f</b> sec.', $t2->getPassedTime());

?>

Результат выполнения:

Код: plaintext
1.
2.
3.
4.
5.
SELECT id, foo, bar FROM tmp_table WHERE id='1'
Parsing time for getDynamicSqlQuery1():  0 . 000187  sec.

SELECT id, foo, bar FROM tmp_table WHERE id='1'
Parsing time for getDynamicSqlQuery2():  0 . 000041  sec.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309429
SDN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SDN
Гость
Интересная статья по этому поводу: http://php.spb.ru/php/speed.html
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309451
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
SDNИнтересная статья ...... не первой свежести.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309509
Andres 1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какой смысл в этих копеечных оптимизациях на склейке строк, если эта строка потом передается в сервер БД?
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309921
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andres 1А какой смысл в этих копеечных оптимизациях на склейке строк, если эта строка потом передается в сервер БД?
Это лишь частный случай, когда строка передается на сервер. Написал только для примера.

А смысл, имхо, в том, что сколько уходит времени при разборе строки в PHP?

Насчет "копеечных оптимизаций" спорить не буду, т.к. в одном случае действительно нецелесообразно будет уделять внимание на это (небольшие проекты), а другом случае - наоборот (крупные проекты).

Опять же имхо, ... из таких "оптимизаций" формируется общая производительность системы.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33309925
Фотография Berkut
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
* SDNИнтересная статья ...... не первой свежести.
Очень буду рад, если вы предложите другую альтернативу. :)
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33310087
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutНасчет "копеечных оптимизаций" спорить не буду, т.к. в одном случае действительно нецелесообразно будет уделять внимание на это (небольшие проекты), а другом случае - наоборот (крупные проекты).Реальный пример крупного проекта, где "копеечная" оптимизация дала существеннй прирост производительности, в студию.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33310100
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
BerkutОчень буду рад, если вы предложите другую альтернативу. :)Другая альтернатива - не заниматься фигнёй. Как говорит древняя программистская мудрость - не сокращай программу на один байт - сокращай сразу на 10, не ускоряй время выполнения программы на одну секунду - сокращай сразу вдвое. Копать надо в первую очередь в сторону оптимизации алгоритма, а не исходников.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33310146
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33310263
*
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
*
Гость
DocAl Статья по теме Спасибо.
...
Рейтинг: 0 / 0
(PHP) Какой парсинг строки будет выполняться быстрее?
    #33310440
Alexander Netkachev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не люблю использование "... $var ..." потому что:
1. Элементарно неудобно читать код. Если простой тектовый редактор только и умеет, что выделять строки, то все $var просто сливаются.
2. Это прямая дорога к "SELECT ... WHERE id=$id" за что полагается перевоспитывать на месте :-)
3. Строки все равно приходится разбивать и склеивать, поскольку они часто
довольно длинные.

----------
Alexander
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Какой парсинг строки будет выполняться быстрее?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]