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 Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
dubasua
Отправлено: 29 Ноября, 2012 - 20:36:56
Post Id



Посетитель


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


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




Всем доброго времени суток.
Написал я скрипт на php. Все работает все классно, душа радуется, времени еще 1,5 дня до сдачи проекта, вот думаю оптимизирую немного. В самое начало скрипта вставил две строки

И в самый конец скрипта тоже вставил
PHP:
скопировать код в буфер обмена
  1.  
  2. $total_time = microtime() - $start_time;
  3. $total_memory = memory_get_usage() - $start_memory_usage;
  4. $$total_memory = $total_memory / 1024;
  5.  
  6. echo "</br>Время - $total_time секунды</br>";
  7. echo "Память -$total_memory kb </br>";
  8.  


Все нормально, записал данные времени, и используемой памятью. Приступил к оптимизации, прошелся по всему скрипту, кое-что поправил. кое что изменил. После оптимизации сверил данные до и после оптимизации, в итоге время выполнения скрипта почти не изменилось, а вот память на 13 kb уменьшалась. Круто, подумал я, и скинул скрипт на удаленный хостинг. И после того, как я увидел там цифры по выполнению скрипта, я немного выпал в осадок. Короче время не изменилось, а вот используемая память на хостинге ест в 2,7 раза больше. Как так??? Один и тот же скрипт съедает разное количество памяти на разных серверах??? На локальном у меня стоит apache 2.2, на хосте тоже. В чем прикол?

(Отредактировано автором: 29 Ноября, 2012 - 20:37:31)

 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 20:53:27
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Гггг подобная фича, только с phpQuery
на локалке отлично находить елемент, а на хосте ну никак, хотя там ПХП поновее, но не сильно
 
 Top
dubasua
Отправлено: 29 Ноября, 2012 - 20:57:02
Post Id



Посетитель


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


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




пхп у меня поновее будет. Запросов к бд нет. Есть несколько include
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 21:04:39
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Думаю все дело в архитектуре ОС. Могу ошыбатся, но если локалка у вас на винде то там стопудов NTFS, а хост на линуксе, а там файловоя система ext3 или какая-то там. Вот в линуксе на каждый файл разние права, думаю и скорость чтения больше. Ето только предположения. Могу ошыбатся

И еще одно припущения, скорость исполнения может зависеть от загружености системы. Может тут кроется тайна

П.С. не пинайте сильно, так-как я не бородатый сисадмин, и плохо разбираюсь в ФС

(Отредактировано автором: 29 Ноября, 2012 - 21:09:15)

 
 Top
dubasua
Отправлено: 29 Ноября, 2012 - 21:12:46
Post Id



Посетитель


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


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




esterio пишет:
скорость исполнения может зависеть от загружености системы

Вот скорость как раз одинаковая там и там. А на локалке у меня линь стоит. Файловая система ReiserFs. Правда какая на хостинге не скажу.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2012 - 21:15:14
Post Id



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


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


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




Надо больше данных. Версии PHP, ОС, х86-32 или х86-64 архитектура.


-----
PostgreSQL DBA
 
 Top
esterio
Отправлено: 29 Ноября, 2012 - 21:16:05
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




Ну тогда честно не знаю, а сколько раз пробовали тесты?
 
 Top
dubasua
Отправлено: 29 Ноября, 2012 - 21:24:31
Post Id



Посетитель


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


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




У меня стоит убунта 32-битная.
PHP 5,3 таи и там, у меня только на несколько мажоров больше. так как у меня скоробки чуть ли не каждый день обновление презжает.
хост сидит на x64, а ось не скажу.
(Добавление)
esterio пишет:
а сколько раз пробовали тесты?

Да только то и делаю что страницу обновляю...
 
 Top
Мелкий Супермодератор
Отправлено: 29 Ноября, 2012 - 22:36:40
Post Id



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


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


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




dubasua пишет:
хост сидит на x64

Ну вот тут двухкратную разницу словить вполне можно. Мне во всяком случае удалось, в консоли в равных версиях PHP


-----
PostgreSQL DBA
 
 Top
dubasua
Отправлено: 29 Ноября, 2012 - 22:54:49
Post Id



Посетитель


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


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




Так это что? x32 в два раза продуктивней будет? Или я не правильно понял?
 
 Top
vanicon
Отправлено: 30 Ноября, 2012 - 00:19:08
Post Id



Частый посетитель


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


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




Цитата:
Так это что? x32 в два раза продуктивней будет? Или я не правильно понял?

По идее x64 должна быть продуктивней, но вот памяти жрет больше, так как там в 2 раза больше длина указателей.
Но насколько я знаю, то производительность x64 зависит от кол-во ram yf сервере, если <= 4 г то разница вряд ли будет...


-----
Так было, так есть и так будет
 
 Top
dubasua
Отправлено: 30 Ноября, 2012 - 01:13:53
Post Id



Посетитель


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


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




Мне вот сейчас делать нечего, я сижу и играюсь. Например, я знаю два способа удаления переменной
PHP:
скопировать код в буфер обмена
  1.  
  2. unset($var);    //Первый способ
  3. $var = NULL;    //Второй способ
  4.  

А вы знали что второй способ обходится дороже на 166 байт? Или empty($var) дешевле чем $var == ''. Интересные вещи.
(Добавление)
Все равно. вопрос остался не решенным.

(Отредактировано автором: 30 Ноября, 2012 - 01:15:01)

 
 Top
DlTA
Отправлено: 30 Ноября, 2012 - 02:34:26
Post Id



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


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


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




dubasua, а сколько памяти используете?
возможно вся загвоздка как раз в том и состоит что у вас куча переменных, но данных в них очень мало, что как выше и сказали вылазит в большое выделение памяти на указатели,
(Добавление)
dubasua пишет:
$$total_memory
а что это у вас за переменная такая интересная?
 
 Top
dubasua
Отправлено: 30 Ноября, 2012 - 03:25:46
Post Id



Посетитель


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


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




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

Даже если это и так, все равно разница сильно большая. на локальном у меня все это дело занимает 32 кб, а на удаленке 84 кб.
 
 Top
EuGen Администратор
Отправлено: 30 Ноября, 2012 - 08:07:34
Post Id


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


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


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




dubasua пишет:
unset($var); //Первый способ
$var = NULL; //Второй способ

Разумеется, второй способ "дороже", ведь Вы не уничтожаете переменную полностью. Во втором случае переменная остается на месте (в таблице имен), вот только значение у нее будет NULL. В данном случае некорректно
dubasua пишет:
дороже на 166 байт?

- так как "экономия" будет зависеть от длины имени ссылки. В первом же случае переменная уничтожается полностью - как ссылка, так и значение.

На x64 в теории размер используемой памяти будет больше, так как тот же int будет занимать больше байт. Но на практике нужно видеть код целиком, чтобы что-либо конкретное сказать.


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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB