Нет такой вещи как один язык, являющийся быстрее, чем другой, таким образом, надлежащий ответ никакой .
то, Что действительно необходимо спросить, является "кодом, компилируется с компилятором Фортрана X быстрее, чем эквивалентный код, скомпилированный с компилятором C Y?" Ответ на тот вопрос, конечно, зависит, на котором два компилятора Вы выбираете.
Другой вопрос, который можно было задать, будет вроде, "Учитывая то же усилие, помещенное в оптимизацию в их компиляторах, какой компилятор произвел бы более быстрый код?" Ответ на это на самом деле был бы Фортран . Компиляторы Фортрана имеют преимущества certian:
Однако нет ничего мешающего кому-то поместить тонну усилия в оптимизацию их компилятора C и заставить его сгенерировать лучший код, чем компилятор Фортрана их платформы. На самом деле большие продажи, сгенерированные компиляторами C, делают этот сценарий довольно выполнимым
10-20 (или даже сотни) пользовательских элементов управления - это сверх тривиально. Наличие самих элементов управления и идея инкапсуляции определенно не являются источником ваших проблем.
Невозможно сказать точно , в чем проблема, конечно, без фактического профилирования приложения, но на основе по своему опыту могу сказать следующее:
Более вероятно, что конкретная реализация бизнес-логики внутри каждого пользовательского элемента управления является плохой. Поскольку обратная передача занимает столько времени, сколько вы описываете, каждый элемент управления, вероятно, обращается к вашему DAL в поисках собственных данных по каждому запросу. Это можно смягчить двумя вещами:
Насколько я понимаю, вы не знакомы с приложениями, в которых используется так много пользовательских элементов управления?
Похоже, вы пришли к выводу, что причиной является этот незнакомый аспект приложения. незнакомой плохой работы. Вместо того, чтобы делать предположения, почему бы не попробовать один из следующих инструментов профилирования и выяснить:
Все они могут выполнять профилирование памяти и ЦП Приложения ASP.NET.
Я согласен с Сондерсом в отношении выполнения некоторого профилирования, чтобы определить влияние определенных вещей. .
Обратите внимание, что вы можете получить несколько бесплатных инструментов стресс-тестирования для IIS здесь: http://support.microsoft.com/kb/840671
Однако я скажу, что слишком много элементов управления наверное не очень хорошая вещь, ИМХО. Не зная больше, я бы сказал, что 20 - это слишком много.
хотя, ИМХО, слишком много элементов управления, вероятно, нехорошо. Не зная больше, я бы сказал, что 20 - это слишком много. хотя, ИМХО, слишком много элементов управления, вероятно, нехорошо. Не зная больше, я бы сказал, что 20 - это слишком много.Я считаю, что одной из ключевых целей UserControls является повторное использование кода. То есть, если одна и та же функциональность встречается на нескольких веб-страницах, лучше создать для нее UserControl. Это не только избавляет разработчика от написания (или копирования и вставки) одного и того же кода на несколько веб-страниц, но также значительно упрощает обслуживание. Любые изменения, внесенные в UserControl, автоматически применяются везде, где используется UserControl. Разработчику сопровождения не нужно беспокоиться о том, чтобы найти все разные места, которые нужно изменить в коде.
Я не уверен, что одноразовый UserControl так же эффективен. Они инкапсулируют и разделяют код, что хорошо на загруженной веб-странице.
Можете ли вы выяснить, используются ли ваши UserControl повторно или многие из них используются только один раз.
Я твердо поставлю себя в лагерь людей, которые полагают, что нет жесткого ограничения на количество пользовательских элементов управления, которые следует использовать на странице. Похоже, здесь нужна трассировка всего приложения вместо трассировки на уровне страницы. Вполне может быть, что некоторые из этих элементов управления вызывают проблему. Черт возьми, это может быть единственный элемент управления, который вызывает всю суету. Однако, поскольку невозможно сделать какие-либо предположения об уровне использования ресурсов, который занимает «среднее» (если такое есть) пользовательское управление, также невозможно предложить предел. В противном случае мы могли бы придумать аналогичные ограничения на количество членов класса или количество хранимых процедур в базе данных.
Теперь, если мы ' Если мы говорим о 20 сложных пользовательских элементах управления, каждый из которых извлекает свои собственные данные при каждом обновлении, и каждый имеет кучу подчиненных элементов управления, использующих ViewState, независимо от того, нужно это или нет, то да, это проблема. Тем не менее, это больше связано с общим дизайном, чем с слишком большим количеством элементов управления. Если, с другой стороны, они создали общий пользовательский элемент управления, который действует как не более чем композиция метки слева от текстового поля (или, возможно, даже каждая комбинация метка + элемент управления, управляемый пользователем), и разбросали это контроль во всем приложении, я могу представить, что вы получите их кучу на странице, и я не понимаю, почему это обязательно что-нибудь повредит.
это больше связано с общим дизайном, чем с слишком большим количеством элементов управления. Если, с другой стороны, они создали общий пользовательский элемент управления, который действует как не более чем композиция метки слева от текстового поля (или, возможно, даже каждая комбинация метка + элемент управления, управляемый пользователем), и разбросали это контроль во всем приложении, я могу представить, что вы получите их кучу на странице, и я не понимаю, почему это обязательно что-нибудь повредит. это больше связано с общим дизайном, чем с слишком большим количеством элементов управления. Если, с другой стороны, они создали общий пользовательский элемент управления, который действует как не более чем композиция метки слева от текстового поля (или, возможно, даже каждая комбинация метка + элемент управления, управляемый пользователем), и разбросали это контроль во всем приложении, я могу представить, что вы получите их кучу на странице, и я не понимаю, почему это обязательно что-нибудь повредит.