Я знаю, что процессоры учитывают все промахи кеша L1/2/3, и эта информация в принципе доступна. Например. есть просмотрщик производительности от Intel. Я просто не могу найти пример на С#. Доступны ли эти данные из .NET?
С# Получить счетчик производительности промаха кеша ЦП
comment
Под средством просмотра производительности вы подразумеваете Intel Performance Counter Monitor?
- person Evk   schedule 14.09.2015
comment
Для него нет встроенных счетчиков производительности. К ним слишком сложно добраться, только код звонка 0 может их прочитать. И они сильно зависят от марки и модели процессора. Конечно, причина для программного обеспечения Intel. Не запускайте его на процессоре AMD :)
- person Hans Passant   schedule 14.09.2015
Ответы (1)
Что ж, вы можете сделать это (по крайней мере, в Windows), используя Intel Perfomance Counter. Монитор. В дополнение к другим инструментам, которые поставляются в комплекте с ним, он содержит PCM-Service - службу Windows, которая добавляет счетчики производительности Windows PCM. После того, как вы загрузили, скомпилировали и установили эту службу, вы можете получить доступ к промахам кеша L2 (например) так же просто, как это:
var pc = new PerformanceCounter("PCM Core Counters", "L2 Cache Misses", "total_"); // instead of total_ you can use number of core
var value = pc.RawValue; // or pc.NextValue() and so on.
Intel PCM добавляет гораздо больше интересных счетчиков, чем просто промахи кеша, конечно, все они доступны из .NET.
person
Evk
schedule
13.09.2015
Можно ли вызвать нативную библиотеку через P/Invoke? Я не хочу никаких системных зависимостей, таких как служба Windows, но меня устраивает собственная зависимость с возможностью xcopy.
- person V.B.; 14.09.2015
Библиотека написана на C++ и снабжена всеми исходниками. Поэтому я думаю, что там должна быть возможность p-invoke, хотя я лично не исследовал детали. По ссылке выше вы можете увидеть пример того, как они предлагают использовать свою библиотеку из кода (код C++), поэтому вы можете попробовать создать библиотеку C++\CLI для выполнения этой задачи.
- person Evk; 14.09.2015