Вы также можете создать 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
{
}
Две функции, которые Вы могли бы найти полезным:
GC.GetTotalMemory();
Process.PagedMemorySize64();
Мой опыт состоял в том, что GC.GetTotalMemory () не ужасно надежен. Это часто сообщает об использовании памяти, которое намного меньше, чем фактическое использование памяти. Я видел, что он сообщает, что я использую только 8 гигабайтов когда мои прогоны программы из памяти на машине на 16 гигабайтов.
я еще не протестировал Процесс. PagedMemorySize64, хотя это действительно выглядит многообещающим.
Можно получить некоторую крупную гранулярность о процессе от Системы. Диагностика, класс Процесса. http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx .
Ни один из 'на объектный' материал, но по крайней мере некоторую информацию о памяти о Вашем процессе не может быть подобран.
Вы могли послушать на счетчиках perfmon, которые дадут Вам много данных (действие GC / использование физической памяти / управляемая "куча" и т.д.)
, Если необходимо пойти глубже, необходимо будет, вероятно, присоединить отладчик к себе, которые являются действительно супер хитрой причиной, необходимо будет породить новый процесс и общаться с ним, и обход через память.
Process proc = Process.GetCurrentProcess();
Logger.Info(proc.PeakWorkingSet64/1024 + "kb");