Мне нужно построить симулятор с C#. Этот симулятор должен иметь возможность запускать второй поток с настраиваемой скоростью процессора и ограниченным объемом ОЗУ, например. 144 МГц и 50 МБ.
Конечно, я знаю, что симулятор никогда не может быть таким точным, как реальное оборудование. Но я стараюсь добиться почти одинаковой производительности.
В настоящий момент я думаю о создании потока, который я время от времени остановлюсь/спать. В зависимости от желаемой скорости процессора симулятор должен отрегулировать время сна этой нити и, следовательно, имитировать частоту процессора cpu. Чтобы измерить достигнутую скорость, я хотя бы об использовании PerformanceCounters. Но при таком подходе у меня есть проблема, что я не знаю, как ограничить размер ОЗУ, который может использовать поток.
Есть ли у вас идеи, как реализовать такой симулятор?
Как имитировать разную частоту процессора и ограничение ОЗУ
Заранее спасибо!
+1 как я хотел бы знать ответ. Но я боюсь, что вы находитесь в слишком глубокой воде. –
Посмотрите на распределители арены, чтобы ограничить память до определенной суммы. – WhirlWind
обратите внимание, что тактовая частота не является хорошей мерой производительности. На одном ядре Core2Duo с пониженным до 1 ГГц я получаю значительно лучшую производительность, чем на 2,5 ГГц пентий 4. Если вы пытаетесь выяснить, как ваше программное обеспечение будет работать на определенном устройстве, вы должны попытаться получить эмулятор фактического чип. – back2dos