Я пытался оптимизировать приложение ASP.NET C # в течение нескольких дней, и мне любопытны некоторые проблемы.
Используя плагин PageSpeed Firefox, я смог отследить и устранить некоторые ненужные вызовы ajax и включить кэширование статических ресурсов, но все еще существуют значительные проблемы с производительностью.
При открытии любой данной страницы к серверу поступает примерно 25 запросов (ajax, автоматические постбэки, статический контент), и одна из проблем, на которые указала PageSpeed, заключалась в том, что размер запроса был слишком велик, в частности размер файла cookie 1.4KB. Как я понимаю из других источников, куки передаются на сервер с каждым запросом. Я также читал о решении «Домены без cookie для статического контента», но это не вариант, так как я не контролирую структуру приложения и среду размещения.
Файлы cookie записываются и читаются с использованием потока памяти и объекта System.Runtime.Serialization.Formatters.Binary.BinaryFormatter для сериализации списка пользовательских объектов (2 поля и 2 свойства для этих полей, немного избыточны для BinaryFormatter).
Мои вопросы:
- Насколько такой большой запрос может повлиять на производительность?
- Достаточно ли этого, чтобы сервер зависал / зависал? (это часто случается)
- Есть ли способ значительно уменьшить размер вывода BinaryFormatter?
- Я знаю, что сериализация объектов в файлы cookie не является хорошей идеей, поэтому заменят ли сериализацию объектов в файлы cookie строками, которые будут проанализированы, решить мои проблемы с производительностью?
- Как я уже сказал, на страницах используются некоторые автоматические средства обратной отправки, и я могу отлаживать и проверять, что куки читаются (десериализуются), пишутся (сериализуются) примерно 5 раз до загрузки страницы. Влияет ли это на производительность так, чтобы сервер зависал / зависал?
Спасибо и хорошего дня,