Прежде всего, ссылка на ссылку на блог Nathanael Jones, хотя диск IO намного медленнее, чем в операциях с памятью, большинство веб-сайтов не связаны с диском IO, а большинство его решений - откровенно необразованное дерьмо.
Вообще говоря, существует очень мало ситуаций, когда вы становитесь DISK io bound. Первый - это сам сервер базы данных. Если у него недостаточно памяти для хранения соответствующих частей базы данных в памяти, тогда скорость диска THAT-сервера имеет решающее значение; особенно в условиях высокой транзакции.
Во-вторых, вы можете привязать IO к диску, если ваше приложение напрямую читает и записывает много файлов. Очень немногие приложения делают это. Я не рассчитываю файлы .aspx или.html вашего приложения, потому что они могут кэшироваться существующей инфраструктурой и IIS.
В принципе, просто игнорируйте его.
Вся файловая система для синхронизации базы данных в качестве метода повышения производительности не имеет значения около 99,999% сайтов. Если ничего больше, база данных должна выталкивать файлы в файловую систему веб-сервера, а не наоборот. Я видел ровно 1 сайт за 20 лет развития, который требовал этого. Они обслуживают несколько миллионов просмотров страниц в день.Кроме того, он неверно говорит о том, что вызов базы данных по сети происходит быстрее, чем загрузка эквивалентного количества данных из локального файла.
Далее, фактическая область, с которой мы действительно связаны, заключается в отправке данных по сети в клиентский браузер. Это ВСЕГДА медленнее, чем чтение файла с диска; даже без трафика на линии. Жесткие диски перемещают данные намного быстрее, чем ваша сетевая карта. Сделав еще один шаг; современные жесткие диски на порядок быстрее, чем ваше интернет-соединение. Лучшее, что вы можете сделать для повышения производительности, - это просто ограничить количество запросов на подключение, требуемых для одной страницы. Оптимизация здесь означает наличие 1 css-файла, а не 20; имея только пару ссылок .js файлов, а не 100; и комбинировать графику с спрайтами, где это возможно. Благодаря тому, как работает TCP, быстрее передавать 1 большой файл, чем 100 небольших файлов.
Возможно, на перегруженном общем сервере у вас может есть проблема. Однако реальность заключается в том, что перегруженный общий сервер будет перегружен сетью задолго до того, как длина очереди на диске вырастет из-под контроля.
С учетом этого, давайте рассмотрим вашу актуальную проблему.
Элементы javascript имеют два предпочтительных местоположения: 1. Как файлы .js на веб-сервере или 2. встроены в главную страницу. Просто выполните вариант 1, они будут кэшироваться веб-сервером. Кроме того, они будут кэшироваться браузером клиента, то есть вам не нужно будет
Для вашего верхнего и нижнего колонтитула код для этого должен быть на главной странице. Не используйте серверную часть, это просто усложняет ситуацию. Создайте обычный веб-сайт .net, который использует мастер-страницы для вашего «хромового» контента. Вы можете включить частичное кэширование страниц на уровне приложения, которое будет обрабатывать все кэширование для вас.
При обновлении содержимого заголовка или нижнего колонтитула просто передислоцируйте сайт.
Почему бы просто не поставить их на частичный вид? И html header/footer в главном представлении. – CodesInChaos
Не беспокойтесь о диске IO. Сеть IO экспоненциально хуже. Кроме того, кеш не является аббревиатурой. – SLaks
Ваши примеры, скорее всего, будут кэшироваться дисковым кэшем ОС, даже если вы используете простые файлы. Я знаю некоторые ограниченные диском приложения, но обычно у них есть несколько баз данных GB. – CodesInChaos