У меня есть сайт LAMP вверх и вниз. Он работает довольно быстро, но хотел бы улучшить скорость. Я признаю, что у вас нет конкретного PHP-скрипта, SQL-запросов, включено ли кэширование, настройка сервера и т. Д., А также не задавать вопросы на этом уровне. Вместо этого я спрашиваю, существует ли общий подход к передовой практике и порядок шагов по выявлению узких мест, чтобы скорость веб-сайта могла быть улучшена.В целом, как оптимизировать производительность многоуровневого приложения
ответ
Я не знаю, есть ли общий способ оптимизации скорости, но лично каждый раз, когда я пишу новый раздел кода, я всегда знаю, как долго этот код выполняется, просто измеряя его.
Если вы ретроспективно просматриваете много кода, который уже был написан, просто разделите его на разделы и измерьте время, затрачиваемое каждой секцией.
У меня постоянно есть эти линии, обернутые вокруг основного тела моего кода;
<?php
$start_time = microtime(true); // Note the start time.
$html = get_html(); // Main body of code.
// Calculate peak memory usage and time taken.
$mem = number_format(memory_get_peak_usage(true)/1024/1024, 1).'mb';
$tmr = number_format(microtime(true) - $start_time, 2).'s';
echo "{$html}\n<!-- Peak memory usage: {$mem}. Response time: {$tmr} -->";
?>
Это покажет, сколько времени get_html()
берет. Если вы сравните это с временем ожидания, сообщенным браузером, вы можете узнать, сколько из общего времени ответа потребляется вашим кодом и сколько потребляется другими вещами, кроме вашего кода.
Надеюсь, что это поможет.
Спасибо Nigel. Выполнение этого только измеряет PHP и связанные с ним MySQL, но не сетевые/apache/множественные запросы и т. Д. – user1032531
Действительно, если вы знаете, сколько времени занимает ваш собственный код, и вы знаете общее время, которое,/apache - разница между этими двумя. Я не знаю, как напрямую измерить время сети/apache. Кстати, я не думаю, что ваш вопрос слишком широк, как это предлагают модераторы. Чуть «мета» вопросы хороши. –
Спасибо Найджелу, я бы подумал, что кто-то написал бы книгу по этому вопросу. – user1032531
- 1. Как оптимизировать производительность приложения wpf
- 2. Производительность многоуровневого кэша
- 3. Как оптимизировать производительность SQLcipher?
- 4. Как оптимизировать производительность MySQL зрения
- 5. Как оптимизировать производительность кода VBA?
- 6. Как я могу оптимизировать производительность моего приложения на основе профиля?
- 7. Чтобы оптимизировать производительность запроса
- 8. Как оптимизировать производительность кода в .NET
- 9. Как оптимизировать производительность записи файлов в C#
- 10. Проектирование многоуровневого приложения (стиль шаблона)
- 11. C#/LINQ: Пытаясь оптимизировать производительность
- 12. Как Docker может использоваться для многоуровневого приложения?
- 13. Как оптимизировать производительность этого кода ABAP
- 14. Как оптимизировать производительность этого SQL-запроса
- 15. Как оптимизировать производительность SerialNumbers по SalesInvoicesExploded?
- 16. Как оптимизировать индекс перколятора elasticsearch Производительность памяти
- 17. Как оптимизировать производительность для контейнера докеров?
- 18. JSF - как оптимизировать производительность базы данных
- 19. Как оптимизировать производительность с помощью appstats
- 20. Как оптимизировать производительность очень большой базы данных MySQL?
- 21. Как увеличить производительность приложения?
- 22. Как измерить производительность приложения?
- 23. Как повысить производительность приложения
- 24. Как оптимизировать производительность Sencha Touch 2.0 на iPad?
- 25. Переменные сеанса C#/переменные приложения в целом
- 26. Как оптимизировать производительность добавления в CLOB в UPDATE?
- 27. Как оптимизировать производительность потока, выполняющегося в фоновом режиме в ASP.NET?
- 28. PHP Производительность приложения
- 29. JSON для многоуровневого приложения для Android-андроид
- 30. Как улучшить общую производительность приложения для Android?
На такие вопросы, как это, на самом деле нет общих ответов. Это всего лишь вопрос взглянуть на всю диагностику и заметить ценности, которые кажутся чрезмерными. – Barmar
@Barmar Любые мысли о том, с чего вы начнете сначала? – user1032531
Шаг 1: профиль выполнения. Сколько времени отклика тратится в браузере пользователя, проходит через сеть, анализирует запрос, получает необходимые данные, обрабатывает, собирает ответ, обходит сеть обратно и отображает результаты в браузере пользователя? Применяйте рекурсивно к критическим шагам - здесь используются конкретные методы. Но сначала профиль. – mpez0