Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / (PHP) Какой парсинг строки будет выполняться быстрее? / 12 сообщений из 12, страница 1 из 1
06.10.2005, 15:24
    #33309335
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
первый вариант, используя конкатенацию:
Код: 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
06.10.2005, 15:28
    #33309352
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
Написал небольшой тестик (возможный не самый удачный), который засекает время на разбор строки.

Код: 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
06.10.2005, 15:52
    #33309429
SDN
SDN
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
Интересная статья по этому поводу: http://php.spb.ru/php/speed.html
...
Рейтинг: 0 / 0
06.10.2005, 15:57
    #33309451
*
*
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
SDNИнтересная статья ...... не первой свежести.
...
Рейтинг: 0 / 0
06.10.2005, 16:13
    #33309509
Andres 1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
А какой смысл в этих копеечных оптимизациях на склейке строк, если эта строка потом передается в сервер БД?
...
Рейтинг: 0 / 0
06.10.2005, 17:55
    #33309921
Berkut
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
(PHP) Какой парсинг строки будет выполняться быстрее?
Andres 1А какой смысл в этих копеечных оптимизациях на склейке строк, если эта строка потом передается в сервер БД?
Это лишь частный случай, когда строка передается на сервер. Написал только для примера.

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

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

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

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


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