Производительность веб-сайта - что это такое? Читаемость и невежество Vs. Спектакль - PullRequest
4 голосов
/ 01 сентября 2010

Позвольте мне перейти к преследованию ...
С одной стороны, многие из приведенных советов по программированию (здесь и в других местах) подчеркивают идею о том, что код всегда должен быть максимально читабельным и максимально четким при любой (почти ?!) любой стоимости. С другой стороны, так много медленных веб-сайтов (по крайней мере, один из них, я знаю из личного опыта).
Очевидно, что обходные пути и доступ к БД - это проблемы, которые веб-разработчик всегда должен учитывать. Но компромисс между читабельностью и тем, что нельзя делать, потому что это замедляет ход событий, для меня очень неясен .
Вопрос -
1.Что еще?
2. Есть ли правило (желательно простое, но, вероятно, довольно общее), которого следует придерживаться, чтобы убедиться, что его код не слишком сильно тормозит?
Общие рекомендации, а также конкретные советы будут высоко оценены. Советы, основанные на опыте, будут особенно цениться.

Спасибо.

Редактировать: Небольшое уточнение: Общие советы по эффективности не трудно найти. Это не то, что я ищу. Я спрашиваю о двух вещах: 1. Когда я пытаюсь сделать свой код максимально читабельным, когда я должен остановиться и сказать: «Теперь я слишком сильно ухудшаю производительность».
2. Маленькие, менее известные вещи Например, вы выбираете только один столбец быстрее, чем все (Спасибо, Отавио) ...

Еще раз спасибо!

Ответы [ 4 ]

7 голосов
/ 01 сентября 2010

См. Обсуждение переполнения стека здесь:

Какое самое важное влияние на производительность веб-приложения с поддержкой базы данных?

Самый популярный ответ: «Напишите это чисто и используйте профилировщик для выявления реальных проблем и их решения».

По моему опыту, самая большая ошибка (при использовании C # / asp.net / linq) - это чрезмерный запрос из-за простоты использования LINQ. Один огромный запрос обычно намного быстрее, чем 10000 маленьких.

Другая проблема ASP.NET, которую я часто вижу, - это когда представление очень толстое и раздутое. EnableViewState = false - ваш лучший друг, начните с него каждый новый проект!

2 голосов
/ 01 сентября 2010

Для веб-приложений, имеющих базу данных, крайне важно, чтобы:

  • индексирование выполнено правильно
  • поиск выполняется для того, что необходимо (избегайте выбора * при выборе определенных полей - даже больше, если они являются частью покрытого индекса)

Кроме того, когда это возможно, соответствующая стратегия кэширования может способствовать повышению производительности

0 голосов
/ 01 сентября 2010

Скотт и Ракстера отлично поработали, охватив БД и запросив оптимизацию.Чтобы ответить на ваш вопрос с точки зрения HTML / CSS / JavaScript:

CSS: Читаемость является ключевым фактором.CSS отрисовывается так быстро, что вы никогда не должны чувствовать, что нужно жертвовать удобочитаемостью ради производительности.Таким образом, сосредоточьтесь на добавлении в столько комментариев, сколько необходимо для документирования кода, почему существуют определенные правила (например, хаки), и все остальное, что пополняет вашу лодку комментариев.В CSS есть несколько очевидных правил, которым нужно следовать: 1) Используйте внешние стили.2) Ограничение внешних таблиц стилей для ограничения запросов GET.

HTML: Как и CSS, HTML читается браузером так быстро, что вам действительно нужно сосредоточиться только на написании чистого кода.Используйте пробелы, отступы и комментарии для правильного документирования своей работы.Помните только основные вещи в HTML: 1) объявите <meta charset /> в начале раздела head.2) Следуйте этому совету, ребята, чтобы свести к минимуму повторы браузера .* на самом деле это правило применимо и к CSS.

JavaScript: Большинство оптимизаций для JavaScript к настоящему времени действительно хорошо известны, поэтому они будут казаться очевидными, как инициализация переменных вне циклов, продвижение javascriptдо конца тела, поэтому DOM загружается до того, как сценарии начнут связывать все ресурсы, избегая дорогостоящих операторов, таких как eval () или with ().Не похоже на испорченную запись, но сохранение хорошо прокомментированного и легко читаемого сценария должно оставаться приоритетом при разработке кода JavaScript.Тем более что вы можете просто минимизировать и сжать все лишнее при его развертывании.

0 голосов
/ 01 сентября 2010

Оптимизация вашего кода.

Очень важно сделать ваш код максимально читабельным. Оптимизация также важна. Я перечислил некоторые пункты, которые, мы надеемся, приведут вас в правильном направлении.

Например, в отношении баз данных:

  • Когда вы определяете схему своей базы данных, вы должны убедиться, что она нормализована и индексы полей определены правильно.
  • При выполнении запроса, в частности SELECT, выбирайте только те поля, которые вам нужны.
  • Вы должны устанавливать только одно соединение с базой данных при загрузке страницы.
  • Re-фактор. Это, пожалуй, самый важный фактор в создании чистого оптимизированного кода. Всегда возвращайтесь к своему коду и посмотрите, что можно сделать, чтобы улучшить его.

Код PHP:

  • Всегда проверяйте свою работу с помощью такого инструмента, как PHPUnit.
  • эхо быстрее печати. ​​
  • Оберните вашу строку в одинарные кавычки (') вместо двойных кавычек («) быстрее, потому что PHP ищет переменные внутри«… », а не в«… », используйте это, когда вы не используете переменные, которые нужно оценивать твоя строка.
  • Использование нескольких параметров (или суммированных) echo вместо конкатенации строк.
  • Сброс или обнуление ваших переменных, чтобы освободить память, особенно большие массивы.
  • Используйте строгий код, избегайте подавления ошибок, уведомлений и предупреждений, что приводит к более чистому коду и меньшим накладным расходам. Рассмотрите возможность включения error_reporting (E_ALL).
  • Увеличение неопределенной локальной переменной в 9-10 раз медленнее, чем предварительно инициализированная.
  • Методы в производных классах работают быстрее, чем те, которые определены в базовом классе.
  • Подавление ошибок с помощью @ очень медленно.

Оптимизация сайта

Производительность - огромная тема, и есть много вещей, которые вы можете сделать, чтобы улучшить производительность вашего сайта. Это то, что требует времени и опыта.

Лучший, Ричард Кастера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...