Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Самая медленная команда рнр
 
 автор: Владимир55   (19.10.2009 в 21:28)   письмо автору
 
 

Скрипт на Денвере работает настолько медленно, что практической пользы от него уже почти что нет. Стремясь разобраться в причинах, отключил антивирус и поставил две ловушки (в начале и в конце скрипта), записывающие в текстовый файл время их исполнеия.

Получился удивительный результат - обе записи происходят в течение одной секунды (неразличимы на уровне секунд). А браузер крутится... При этом до полной остановки браузера Апач загружает процессор ровно на 50%.

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

В конце концов остался вот такой замечательный код:
<?php

session_start
();

?>


Время обновления браузера - 42 секунды!

Что бы это значило?

  Ответить  
 
 автор: Trianon   (19.10.2009 в 21:47)   письмо автору
 
   для: Владимир55   (19.10.2009 в 21:28)
 

что у Вас с каталогом z:/tmp ?
Ну и с php.ini (по части директив, начинающихся с session)

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 21:57)   письмо автору
 
   для: Trianon   (19.10.2009 в 21:47)
 

В каталоге есть файл с загадочным именем sess_b1b1b05b58e8093fbed49e479cec9a98 размером 14 мбайт. Взглянул на него блокнотом - там и вправду массив, который я в сессию запихнул...

А php.ini пока что никак не найду - папок уж слишком много...

  Ответить  
 
 автор: DEM   (19.10.2009 в 22:09)   письмо автору
 
   для: Владимир55   (19.10.2009 в 21:57)
 

ГЕ У ВАС УСТАНОВЛЕН ДЕНВЕР\usr\local\php5

ЗЫ. это у вас массив весит 14 метров???

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 22:12)   письмо автору
39.7 Кб
 
   для: DEM   (19.10.2009 в 22:09)
 

Я поместил его в Приложение - может, там можно что-то улучшить.

  Ответить  
 
 автор: Trianon   (19.10.2009 в 22:10)   письмо автору
 
   для: Владимир55   (19.10.2009 в 21:57)
 

может не стоило пихать?

php.ini у Вас в Z:/usr/local/php5/php.ini , но я бы просто удалил файл сессии для начала.

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 22:19)   письмо автору
 
   для: Trianon   (19.10.2009 в 22:10)
 

Да, может и не стоило. Так было проще, а цену этой простоты я тогда еще не знал.

Теперь, благодаря Вам, я понял и другие причины непонятного мне прежде поведения скрипта - что это он словно зависает после окончания работы? А это он сессию сохранял!

Что мешает держать сессию в оперативке?

  Ответить  
 
 автор: Trianon   (19.10.2009 в 22:22)   письмо автору
 
   для: Владимир55   (19.10.2009 в 22:19)
 

оперативка выделяется выполняющемуся процессу.
Сессия - инструмент сохранения состояния между исполнениями.

И проблема там не в скорости чтения/записи диска/памяти. А в самом факте преобразования данных из хранимого состояния в активное и наоборот.

просто 15 Мб просто записываются на диск куда быстрее.

  Ответить  
 
 автор: Владимир55   (19.10.2009 в 22:28)   письмо автору
 
   для: Trianon   (19.10.2009 в 22:22)
 

Спасибо!

Самое плохое - это когда непонятно, что происходит. Теперь, когда дело прояснилось, что-нибудь придумаем!

Попутно хотелось бы спросить еще вот что: выставляю set_time_limit(2000), а скрипт останавливается с сообщением, что не хватило предела в 500 секунд.

Странно, да?

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования