Int32
4 байта на x86 и x64. Int64
8 байтов любой случай. Тип C# int
является просто псевдонимом для System.Int32
. То же под обеими средами выполнения. Единственный тип, который действительно изменяется в зависимости от среды выполнения, IntPtr
:
unsafe
{
var size = sizeof(IntPtr); // 4 on x86 bit machines. 8 on x64
}
В windbg введите:
~ * e! Clrstack
Это сбросит все стеки управляемых потоков и даст вам представление о том, что происходит в этом процессе.
Также попробуйте! Runaway, который покажет вам, сколько времени был запущен каждый поток. Сосредоточьтесь на стопках верхних потоков, которые работают дольше всех.
Возможно, это вызвано проблемой с кешем? Например, у вас есть кэшированный набор данных, настроенный на автоматическую перезагрузку из БД по истечении срока его действия?
Однажды у нас была такая ситуация. У нас был большой набор данных, который мы хотели быть всегда доступными. Данные менялись не так часто, поэтому мы установили их в кэш с истечением 1 часа, а затем в нашем global.asax мы обработали удаление (как описано здесь , не обращая внимания на предупреждение описан в ссылке. Мы повторно загрузили набор данных в кеш после того, как прошел час, и это вызвало высокую загрузку процессора и высокую загрузку БД каждый час.
edit - added
Излишне говорить, что мы это быстро увидели и извлекли уроки из нашей ошибки.