Настройка производительности .NET - PullRequest
2 голосов
/ 15 февраля 2012

Мое приложение .Net - это приложение 4.0 ASP.net с множеством обновлений базы данных, и сетка обновляется при обновлении сетки определенных событий, которые выполняются для обновления таблиц и т. Д.) ram 'в моем приложении. (легко вырастает до 1 Гб за несколько минут) ...

Как бы я занялся этим ?? Какой тип оптимизации я бы искал? или что, по вашему мнению, лучше всего подойдет мне в отношении правильного подхода?

Это давало мне покоя, но я не могу понять, из-за чего возникло узкое место. Я закрыл свои объекты и т. Д. Но не уверен, есть ли узкое место в бэкенде SQL или ASP.net.

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Может быть что угодно.

Инструменты для устранения проблем такого типа называются профилировщиками памяти.Есть хорошая программа под названием «.NET Memory Profiler» (см. Memprofiler.com), которая имеет бесплатную пробную версию.Некоторые версии Visual Studio также включают в себя профилировщик памяти.

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

0 голосов
/ 15 февраля 2012

Ниже приведены мои мнения

Мое приложение .Net представляет собой приложение 4.0 ASP.net с множеством обновлений базы данных

Использование операторов для ADO.Net

using (SqlConnection con = new SqlConnection("Your Connection String"))
{
    using (SqlCommand cmd = new SqlCommand("Your Stored Procedure Name", con))
    {
        SqlParameter param = new SqlParameter();
        param.ParameterName = "Parameter Name";
        param.Value = "Value";
        param.SqlDbType = SqlDbType.VarChar;
        param.Direction = ParameterDirection.Input;
        cmd.Parameters.Add(param);
        cmd.ExecuteNonQuery();
    }
}

и обновление сетки при обновлении сетки определенных событий, которые выполняются для обновления таблиц и т. Д.

  1. Храните свои записи в своей сетке, используя подкачку ..., чтобы избежать проблем с производительностью / управлением памятью
  2. После того, как сетка будет заполнена, утилизируйте ее перед привязкой данных.

Что бы вы предположили как «съесть много барана» в моем заявлении.(в течение нескольких минут он легко увеличивается до 1 ГБ) ...

Используете ли вы DataSet / DataTable?Пожалуйста, утилизируйте его после использования.В противном случае вы столкнетесь с Memory Out of Exception крахом ...


Вы можете использовать ANTS MEMORY PROFILER для утечек памяти

Ссылка

ПРОФИЛЬ ПАМЯТИ ПАМЯТИ

...