Не знаю как Вы, но я отлаживаю сайты на локальном сервере. Мне так удобнее, да и быстрый интернет не всегда есть под рукой. В качестве сервера я использую Denwer. Конечно если вдоваться в детали, то это не совсем сервер, это пакет программ для легкого разворачивания web сервера на своем компьютере. Пока у меня был GPRS, и я не знал радостей широкополосного доступа, скорость работы этого пакета меня вполне устраивала. Однако времена меняются, и теперь на хорошем интернете сайт на удаленном сервере работает гораздо отзывчивее чем на локальном Denwer'е. Непорядок, задержек быть не должно, тем более что железо не самое последнее, и в принципе сверх нагруженных базами/ООП/фреймворками проектов я не пишу.
Я более чем убежден, что файл с <?php echo 'Hello world!!!'; должен обрабатываться, практически мгновенно, а кнопочка обновления не должна быть заметна глазу. Для того чтобы Denwer работал так, как нужно, необходимо принять ряд мер по его акселерации. Посмотрим, что же можно сделать.
Первое, что дал Google - оптимизация php.ini, находим строки
; realpath_cache_size=16k ; realpath_cache_ttl=120
И заменить их или написать ниже их такие соответсвенно:
realpath_cache_size=16000k realpath_cache_ttl=1200
Пишут, что данная оптимизация ускоряет Денвер на 40%. Большого прироста скорости я не заметил, но он все же есть.
В принципе цифры могут быть и другие, можно больше. Все дело в том, что эти настройки по умолчанию, оптимизированы для серверов с большим числом пользователей. А так как у нас, пользователь всего один - мы, то и циферки смело можно менять на большие. Это касается и других параметров, предлагаю самим поиграть с ними, и отписать в комментах, увеличение каких параметров также приводит к увеличение производительности.
Теперь возьмемся за mysql. Его конфигурация лежит в файле my.ini, у меня он лежит тут C:\WebServers\usr\local\mysql-5.5
В сети предлагают включить так называемые именованные каналы. Для этого в раздел [mysql] нужно добавить enable-named-pipe
[mysql] enable-named-pipe
Также можно увеличить параметр key_buffer_size, тут тоже как и в php.ini можно не жадничать, и выбрать значение побольше. Рекомендуют 30-40% от размера оперативки.
Это в принципе все, что мне удалось нарыть. Дальше будет лишь лично мой опыт установки Denwer на windows 8.
Ну во первых, Denwer в базовой комплектации, на нее не ставиться. Про это я уже писал. Кроме того любой проект использующий mysql, почему-то притормаживал. Методом нехитрых замеров производительности я пришел к выводу что скрипт тормозит из-за на mysql_connect. Задержка на нем была приличной, около одной секунды.
Оказывалось, что localhost не такой уж и локальный, проверка его DNS отнимает время, поэтому на локальной машине имеет смысл в настройках подключения к БД указывать не localhost а конкретно 127.0.0.1
Кстати, win 8 ставил под новый SSD накопитель, и жизнь теперь кажется не такой уж безнадежной =) Очень рекомендую
Комментарии
Вот только с localhost сомнительная настройка. Ведь в hosts уже стоит запись "127.0.0.1 localhost", а значит никакого обращения к ДНС нет.
На деле оказалось, что это:
- Генерирование: 1.0379 sec. | Запросы в базу: 8
превратилось в это:
- Генерирование: 0.0335 sec. | Запросы в базу: 8
Подскажи, как решил проблему с медленной работой denwer на win8?
Перешел с вин7 на вин8, теперь одна и та же страница открывается за 4 секунды (2 сек ожидание, 2 передача), на старой системе 0,5 секунды все это занимало. Работать стало невозможно, сидишь и тупо ждешь каждый раз, даже перенос всего на рамдиск не помогает, в чем дело - не пойму... Описанное тобой не помогло
P.S. все работает пока сбоев нет!
Правда у меня еще стоит eaccelerator с базовыми настройками:
; базовая конфигурация акселератора
[eaccelerator]
eaccelerator.shm_size="64"
eaccelerator.cache_dir="C:/tmp/eaccelerator"
eaccelerator.enable="1"
eaccelerator.optimizer="1"
eaccelerator.check_mtime="1"
eaccelerator.filter=""
eaccelerator.shm_max="0"
eaccelerator.shm_ttl="0"
eaccelerator.shm_prune_period="0"
eaccelerator.shm_only="0"
eaccelerator.compress="1"
eaccelerator.compress_level="9"
eaccelerator.keys = "shm"
eaccelerator.sessions = "shm"
eaccelerator.content = "shm"
Не забудьте поменять путь до папки "tmp" на свой.
Есть ли еще способы увеличения производительности?