#php #caching #memory-management #lamp
#php #кэширование #управление памятью #lamp
Вопрос:
Мой сайт плохо использует процессор, но у меня достаточно памяти (и места на жестком диске) Я мог бы использовать. Сайт — это своего рода игра с множеством обновлений БД и манипуляций с объектами. Вообще говоря, есть ли какой-либо другой способ разделить нагрузку после того, как я кэшировал столько, сколько, я думаю, смогу?
Спасибо
Комментарии:
1. используйте профилировщик для оптимизации кода? xdebug поддерживает профилирование…
2. Спасибо! Я понятия не имел, что такие программы существуют.
Ответ №1:
Боюсь, что общего совета нет.
Не можете ли вы хотя бы приблизительно профилировать свое приложение, чтобы определить определенные узкие места — будь то обновления БД или манипуляции с объектами? Или даже какой-то другой, неясный вопрос?
Если ваша файловая система дешевая (не SAS), и существует много дисковых операций ввода-вывода, это может легко поглотить ваш процессор. Вам нужно оптимизировать запись на диск, но, боюсь, опять же, общего способа нет. Попробуйте уменьшить количество индексов. Кэшируйте свою базу данных в памяти, когда это применимо.
Комментарии:
1. Это своего рода то, чего я боялся / ожидал. После дальнейшего анализа я сократил количество вызовов db до минимума. В основном это просто объекты, зацикливающие и увеличивающие счетчики в недрах программы. Также не так много операций ввода-вывода с диска. У меня нет индексов, в основном это одна таблица. Я узнал о кэше запросов из-за этого. У меня включен кэш запросов, и это несколько применимо, но это не должно иметь большого значения. Я определил пару циклов, которые можно было бы лучше оптимизировать, но, похоже, я мало что могу сделать. Спасибо, что заверили меня, что я не забыл ничего глупого 🙂
2. что ж, единственный оставшийся способ — профилировать ваш математический код. любой код можно оптимизировать — просто профилируйте его и найдите наиболее потребляющие процессор части, а затем оптимизируйте их. вы можете подумать о том, чтобы закодировать некоторые части на C, это, без сомнения, даст вам огромный толчок.
3. Это имеет смысл, но почему-то я бы никогда не подумал о кодировании основных модулей на C. Возможно, это потому, что я нашел C слишком сложным:0 Еще раз спасибо
4. xdebug — это именно то, что я искал, я понятия не имел, что такая программа существует