Отслеживание потребления памяти потоков и потребления ресурсов ЦП

Храните свои данные представления в TempData и получите его оттуда в Вашем Индексном действии, если это существует.

   ...
   if (!ModelState.IsValid)
       TempData["ViewData"] = ViewData;

   RedirectToAction( "Index" );
}

 public ActionResult Index()
 {
     if (TempData["ViewData"] != null)
     {
         ViewData = (ViewDataDictionary)TempData["ViewData"];
     }

     ...
 }

[РЕДАКТИРОВАНИЕ] я проверил источник онлайн на MVC, и кажется, что ViewData в Контроллере устанавливаем, таким образом, является, вероятно, самым легким только передать все ViewData, включая ModelState, к Индексному действию.

7
задан Pawka 16 September 2009 в 10:14
поделиться

3 ответа

In modern Linux systems (2.6), each thread has a separate identifier that has nearly the same treatment as the pid. It is shown in the process table (at least, in htop program) and it also has its separate /proc entry, i.e. /proc//stat.

Check man 5 proc and pay particular attention to stat, statm, status etc. You should find the information you're interested in there.

An only obstacle is to obtain this thread identifier. It is different with the process id! I.e. getpid() calls in all threads return the same value. To get the actual thread identifier, you should use (within a C program):

pid_t tid = syscall(SYS_gettid);

By the way, java virtual machine (at least, its OpenJDK Linux implementation) does that internally and uses it for debugging purposes in its back-end, but doesn't expose it to the java interface.

6
ответ дан 6 December 2019 в 19:39
поделиться

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

Примером может быть программа с 11 потоками; 1 создает объекты и 10 использует эти объекты. Большая часть работы выполняется в этих 10 потоках, но вся память была выделена в одном потоке, создавшем объекты. Как это объяснить?

6
ответ дан 6 December 2019 в 19:39
поделиться

Если вы хотите использовать Perl, взгляните на это: Sys-Statistics-Linux

Я использовал его вместе с некоторыми пакетами GD для создания системных ресурсов. графики использования для различных процессов.

Одна вещь, на которую следует обратить внимание - вам действительно нужно прочитать / proc и понять jiffies - в прошлый раз, когда я смотрел, они неправильно задокументированы на страницах руководства, вам понадобится для чтения исходного кода ядра возможно:

http://lxr.linux.no/#linux+v2.6.18/include/linux/jiffies.h

Также помните, что в Linux единственная разница между потоком и процессом заключается в том, что потоки совместно используют память - за исключением того, что они идентичны в том, как их реализует ядро.

1
ответ дан 6 December 2019 в 19:39
поделиться
Другие вопросы по тегам:

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