Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Что быстрее?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Crate
Отправлено: 05 Мая, 2012 - 14:14:51
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




У меня много раз встречались такие задачи, которые можно было бы реализовать по-разному. Так вот вопрос: что быстрее и лучше?

VS

Скоро добавлю еще таких штук.
 
 Top
Мелкий Супермодератор
Отправлено: 05 Мая, 2012 - 14:22:40
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Crate пишет:
У меня много раз встречались такие задачи, которые можно было бы реализовать по-разному.

Добро пожаловать в программирование. Здесь все задачи можно реализовать по-разному Подмигивание
Используйте тот, что больше нравится.


-----
PostgreSQL DBA
 
 Top
Crate
Отправлено: 05 Мая, 2012 - 14:28:28
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Мелкий Так все-таки, что лучше?
 
 Top
EuGen Администратор
Отправлено: 05 Мая, 2012 - 14:29:47
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Думаю, Вам будет интересно:
CODE (text):
скопировать код в буфер обмена
  1. user@host:/path$ cat bench.php
  2. <?php                                                  
  3. function benchmark($fnCallable, $rgArgs, $mTimes)      
  4. {                                                      
  5.         $iMax           = (int)$mTimes;                
  6.         $iTimeStart     = microtime(true);
  7.         $iMemStart      = memory_get_usage();
  8.         for($i=0; $i<$iMax; $i++)
  9.         {
  10.                 call_user_func_array($fnCallable, $rgArgs);
  11.         }
  12.         $iTimeEnd       = microtime(true);
  13.         $iMemEnd        = memory_get_usage();
  14.         return array(
  15.                 'time'  => $iTimeEnd - $iTimeStart,
  16.                 'memory'=> $iMemEnd - $iMemStart
  17.         );
  18. }
  19.  
  20. var_dump(benchmark(function()
  21.         {
  22.                 $sValue  = func_get_args()[0];
  23.                 $iValue  = (int)$sValue;
  24.                 return $iValue;
  25.         },array($_SERVER['argv'][1]), $_SERVER['argv'][2]));
  26. var_dump(benchmark(function()
  27.         {
  28.                 $sValue  = func_get_args()[0];
  29.                 settype($sValue, 'int');
  30.                 return $sValue;
  31.         },array($_SERVER['argv'][1]),$_SERVER['argv'][2]));
  32. user@host:/path$ php bench.php 843562 1000000
  33. array(2) {
  34.   ["time"]=>
  35.   float(1.9140930175781)
  36.   ["memory"]=>
  37.   int(100)
  38. }
  39. array(2) {
  40.   ["time"]=>
  41.   float(2.1687920093536)
  42.   ["memory"]=>
  43.   int(100)
  44. }

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


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
Crate
Отправлено: 18 Мая, 2012 - 15:01:11
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Что быстрее и меньше жрет память?
1. Подключение к бд, запрос, выборка.
2. file_get_contents + json_decode?
 
 Top
Bio man
Отправлено: 18 Мая, 2012 - 15:15:48
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Crate пишет:
1. Подключение к бд, запрос, выборка.
Если БД на отдельном сервере то без сомнений это меньше кушает памяти (той памяти от куда пошел запрос). Но будет немного медленнее ФС.
Crate пишет:
2. file_get_contents + json_decode?
ФС крайне быстра, но факт то, что файл читается в память, то есть сколько весит файл - столько памяти и сожрет. Тут + декодирование, что кушает процессорные ресурсы.

Идеалов не бывает, приходится искать компромисс между скоростью/ресурсами, имхо - 1 вариант оптимальней.
 
 Top
Crate
Отправлено: 20 Мая, 2012 - 10:45:32
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




Bio man тогда в чем смысл файлового кэша?
 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Мая, 2012 - 11:10:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




В том что в кеше несколько запросов, куча циклов и генераций.
 
 Top
Crate
Отправлено: 20 Мая, 2012 - 17:31:30
Post Id



Посетитель


Покинул форум
Сообщений всего: 312
Дата рег-ции: Янв. 2012  


Помог: 4 раз(а)




PHP:
скопировать код в буфер обмена
  1. class Test {
  2.     function rate () {}
  3. }


VS

PHP:
скопировать код в буфер обмена
  1. class Test {
  2.     public function rate () {}
  3. }
 
 Top
Bio man
Отправлено: 20 Мая, 2012 - 18:14:50
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010  
Откуда: Даугавпилс, Латвия


Помог: 52 раз(а)




Crate, идентично. Второй вариант правильнее
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB