Истощить конвейер инструкции Intel Core 2 Duo?

Да. Просто объявите свой массив, а затем в конструкторе укажите длину:

public String[] elements;

public ArrayClass(int x) {
    elements = new String[x];
}
8
задан tshepang 31 March 2014 в 20:44
поделиться

1 ответ

К моему знанию нет никакой инструкции, которая конкретно "истощает" конвейер. Это может быть легко выполнено хотя с помощью инструкции по сериализации.

CPUID является инструкцией по сериализации, что означает точно, что Вы ищете. Каждые проблемы инструкции, прежде чем это, как гарантируют, выполнится перед инструкцией CPUID.

Так выполнение следующего должно получить желаемый эффект:

cpuid
rdtsc
# stuff
cpuid
rdtsc

Но, как в стороне, я не рекомендую сделать это. Ваш "материал" может все еще быть произведен большим количеством других вещей за пределами Вашего управления (таких как кэши ЦП, другие процессы, работающие на системе, и т.д.), и Вы никогда не будете мочь устранить их всех. Лучший способ получить точную статистику производительности состоит в том, чтобы выполнить операцию (операции), Вы хотите измерить по крайней мере несколько миллионов раз и составить в среднем время выполнения пакета.

Править: Большинство ссылок инструкции для CPUID упомянет ее свойства сериализации, такие как ручное приложение B NASM.

Редактирование 2: Также мог бы хотеть смотреть на этот связанный вопрос.

9
ответ дан 5 December 2019 в 19:03
поделиться
Другие вопросы по тегам:

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