Опросить использование памяти приложения C# во времени выполнения?

Вы также можете создать AppTable в своей папке src / Model / Table:

namespace App\Model\Table;

use Cake\ORM\Table;

class AppTable extends Table
{
    public function initialize(array $config)
    {
        parent::initialize($config);

        $this->addBehavior('myBehavior');
        $this->addBehavior('myBehavior2');
        $this->addBehavior('myBehavior3');
    }
}

И затем расширяет ваш класс Table с помощью AppTable:

namespace App\Model\Table;

use App\Model\Table\AppTable;

class ArticlesTable extends AppTable
{

}
19
задан George Stocker 21 January 2009 в 01:10
поделиться

4 ответа

Две функции, которые Вы могли бы найти полезным:

  GC.GetTotalMemory();
  Process.PagedMemorySize64();

Мой опыт состоял в том, что GC.GetTotalMemory () не ужасно надежен. Это часто сообщает об использовании памяти, которое намного меньше, чем фактическое использование памяти. Я видел, что он сообщает, что я использую только 8 гигабайтов когда мои прогоны программы из памяти на машине на 16 гигабайтов.

я еще не протестировал Процесс. PagedMemorySize64, хотя это действительно выглядит многообещающим.

29
ответ дан 30 November 2019 в 03:25
поделиться

Можно получить некоторую крупную гранулярность о процессе от Системы. Диагностика, класс Процесса. http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx .

Ни один из 'на объектный' материал, но по крайней мере некоторую информацию о памяти о Вашем процессе не может быть подобран.

2
ответ дан 30 November 2019 в 03:25
поделиться

Вы могли послушать на счетчиках perfmon, которые дадут Вам много данных (действие GC / использование физической памяти / управляемая "куча" и т.д.)

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

2
ответ дан 30 November 2019 в 03:25
поделиться
Process proc = Process.GetCurrentProcess();
Logger.Info(proc.PeakWorkingSet64/1024 + "kb");
6
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

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