Замедлитесь времена загрузки приложения ASP.NET - Могут я дорожка/трассировка/время целый цикл загрузки?

Что касается первого вопроса, возможно ли заполнить массив значениями диапазона: на самом деле можно достичь этого с помощью комбинации Range , DiscreteDomain , ContiguousSet и Ints из Гуава :

int[] array = Ints.toArray(
    ContiguousSet.create(Range.closed(1, 500), DiscreteDomain.integers()));

И, не совсем то, что упоминается во второй части вопроса, но можно создать набор с элементами диапазона дискретной области:

Set numbersFrom1To500 = 
    ContiguousSet.create(Range.closed(1, 500), DiscreteDomain.integers());

Результирующий Set не будет содержать указанные элементы физически, только логически (поэтому его объем памяти будет небольшим ), но может быть повторен (так как это Set):

for (Integer integer : numbersFrom1To500) {
    System.out.println(integer);
}

8
задан Overflew 14 November 2009 в 04:39
поделиться

6 ответов

Профилировщик, такой как JetBrains dotTrace , должен сообщить вам, где находится ваше узкое место ... если вы не видите ничего необычного (например, длинный процесс раз по методу), значит, это не ваше приложение. Это должно быть окружение. Это могло быть, если вы используете Active Directory и вызов Active Directory зависает ... Есть ли вызов веб-службы? Вы используете Team Systems? Существуют ли процессы после сборки?

Мне кажется, что что-то истекает. Вот почему вы так долго ждете.

5
ответ дан 5 December 2019 в 08:52
поделиться

Почему бы не использовать функцию трассировки ASP.NET. Используйте trace.axd для анализа запросов.

Это может быть полезно:

http://msdn.microsoft.com/en-us/library/ms972204.aspx

http://msdn.microsoft .com / en-us / library / wwh16c6c.aspx

6
ответ дан 5 December 2019 в 08:52
поделиться

В прошлом я использовал профилировщик производительности ANTS от redgate. Это действительно хорошо, и мне это очень помогло. Я знаю, что не все хотят тратить деньги на такие инструменты, но этот может того стоить. Проверьте это, у них есть бесплатная 14-дневная пробная версия, которую вы можете использовать на этом веб-сайте и выяснить, в чем именно проблема.

http://www.red-gate.com/products/ants_performance_profiler/index.htm

Удачи!

4
ответ дан 5 December 2019 в 08:52
поделиться

Вы пробовали простую технику включения трассировки страницы, чтобы посмотреть, говорит ли она вам что-нибудь? Первая строка на вашей aspx-странице будет выглядеть так:

<%@ Page Language="C#" Trace="true" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="SilverlightApplication1.Web._Default"  %>

когда страница отображается в браузере, весь набор информации также будет добавлен к ее нижней части.

3
ответ дан 5 December 2019 в 08:52
поделиться

Профилирование и трассировка - хорошие рекомендации.

Если вы используете предложение DateTime.Now.ToString (), Я бы рекомендовал вместо этого использовать класс System.Diagnostics.StopWatch. Он очень прост в использовании, и я считаю его более точным.

using System.Diagnostics;
//...
Stopwatch watch = new Stopwatch();
watch.Start();
// Do your loading work here
watch.Stop();
// You can use watch.ElapsedMilliseconds to get the elapsed time
2
ответ дан 5 December 2019 в 08:52
поделиться

Запишите время в файл журнала и проверьте.

namespace TracePageLoad
{
    public partial class _Default : System.Web.UI.Page
    {
        string sLogDir = "Your path to write the log";
        protected void Page_Load(object sender, EventArgs e)
        {
            TextWriter objTW = new StreamWriter(sLogDir, true);
            objTW.WriteLine(DateTime.Now.ToString());
            //Your code 
            objTW.WriteLine(DateTime.Now.ToString());
            objTW.Close();
        }
    }
}
-1
ответ дан 5 December 2019 в 08:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: