2012-02-22 10 views
1

Есть ли способ определить оптимальный размер кеша (возможно, L1 и L2) в C#? Я спрашиваю об этом, потому что формально работал с: http://en.wikipedia.org/wiki/Loop_tiling Loop Tiling, чтобы убедиться, что большие данные (например, Matrix Multiplications как [3000] на [3000].Определение размера кеша

В настоящее время я просто запускал несколько тестов на компьютер, увеличивая размер блока, и таким образом захватил оптимальный кеш, но я ищу гораздо более быстрый калькулятор времени выполнения или API, или что-то, что поможет мне определить это в C#.

+0

Возможный дубликат [как определить размер кэша процессора в .NET?] (http://stackoverflow.com/questions/6995787/how-to- define-cpu-cache-size-in-net) – eirikdaude

ответ

-1

AFAIK, C# - это не язык, который заботится о таком низком уровне вопросы .Net Framework и базовая ОС должны позаботиться об этом. Это не ваша проблема как программист .Net.

Если вы хотите знать, вам нужно будет использовать/написать functio n/library на языке более низкого уровня, например C/C++ (like this)

+1

Я использовал C# для параллельной обработки в основном. Я знаю, как сделать это немного в C, но мне стало намного лучше делать это на C#. Я всегда мог немного обмануть и написать что-нибудь на C или C++, чтобы вывести его и прочитать в C#, не мог бы я? – Falcon165o

+0

Вот что я имел в виду. Также, если вы проверите эту ссылку, которую я дал, в Linux вы можете захватить кеш с * sys *, хотя я не думаю, что это вас интересует :) – m0skit0

+1

Да, я это видел; затем я проследил его до версии Windows, и я мог бы основывать его на нем. Спасибо. Отметить как ответ. – Falcon165o

Смежные вопросы