Вопросы по теме 'microbenchmark'

Ява. Объединить строку. Микро тест
На первом этапе я запускаю этот код: public class Demo { public static void main(String[] args) { String x = "x"; long start = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { x...
359 просмотров
schedule 08.06.2022

Почему стандартная медианная функция R намного медленнее, чем простая альтернатива C++?
Я сделал следующую реализацию медианы в C++ и использовал ее в R через Rcpp : // [[Rcpp::export]] double median2(std::vector<double> x){ double median; size_t size = x.size(); sort(x.begin(), x.end()); if (size % 2 == 0){...
1420 просмотров
schedule 08.04.2023

Почему мой микротест python aes-ctr-128 с блочным шифрованием работает медленно?
Я разработал алгоритм головоломки, который принимает значение каждого зашифрованного блока, указывающего на следующий зашифрованный блок. Я должен использовать для этого aes-ctr-128 по какой-то особой причине. Я запускаю фиктивный тест, чтобы...
439 просмотров
schedule 07.11.2022

Пролог: проверка, установлен ли бит
Я использую целые числа произвольной точности для представления плотных битовых векторов размером от дюжины до нескольких тысяч. Мой код часто должен проверять, установлены ли определенные биты (или нет), поэтому я провел несколько микротестов,...
115 просмотров

Контрольное количество операций на итерацию JMH
Моя текущая установка: public void launchBenchmark() throws Exception { Options opt = new OptionsBuilder() .include(this.getClass().getName()) .mode(Mode.Throughput) //Calculate number of operations in a time unit....
3916 просмотров
schedule 13.08.2023

Используя SIMD на amd64, когда лучше использовать больше инструкций, чем загружать из памяти?
У меня есть высокочувствительный код. Реализация SIMD с использованием SSEn и AVX использует около 30 инструкций, а версия, использующая 4096-байтовую таблицу поиска, использует около 8 инструкций. В микробенчмарке интерполяционная таблица работает...
724 просмотров
schedule 30.05.2022

Почему Arrays.copyOf в 2 раза быстрее, чем System.arraycopy для небольших массивов?
Я недавно играл с некоторыми тестами и нашел очень интересные результаты, которые я не могу сейчас объяснить. Вот эталон: @BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations = 10, time = 1, batchSize = 1000)...
1573 просмотров
schedule 04.01.2023

Оцените многострочный кодовый блок с помощью микробенчмарка
Можно ли оценить кодовый блок, состоящий из нескольких строк кода, с помощью микробенчмарка? Если да, то как? Пример: у нас есть некоторые числовые данные в символьных столбцах: testdata <- tibble::tibble(col1 = runif(1000), col2 =...
442 просмотров
schedule 30.03.2024

Сравнительный анализ Lua
Я хочу протестировать некоторые Lua без использования внешних зависимостей. В настоящее время я использую os.clock: local function dummy() end local start = os.clock() for i=1,n do dummy() end -- loop/call overhead local overhead = os.clock() -...
628 просмотров
schedule 25.05.2023

У mov r64, m64 задержка в один или два цикла?
Я использую IvyBridge, я написал следующую простую программу для измерения задержки mov : section .bss align 64 buf: resb 64 section .text global _start _start: mov rcx, 1000000000 xor rax, rax loop: mov rax,...
312 просмотров

Странные эффекты производительности от близлежащих зависимых хранилищ в цикле поиска указателя на IvyBridge. Добавление дополнительной нагрузки ускоряет его?
Сначала у меня есть приведенная ниже настройка на IvyBridge, я вставлю код измерения полезной нагрузки в прокомментированное место. Первые 8 байтов buf хранят адрес самого buf , я использую его для создания зависимостей с переносом цикла:...
386 просмотров

что на самом деле измеряет тест пропускной способности памяти STREAM?
У меня есть несколько вопросов по STREAM ( http://www.cs.virginia.edu/stream/ref.html#runrules ). Ниже комментарий от stream.c. Каково обоснование требования, чтобы массивы были в 4 раза больше размера кеша? * (a) Each array must be...
3060 просмотров

почему Java Unsafe CAS (getAndAddInt) быстрее, чем код, написанный вручную
Я написал код cas (цикл while для compare_and_set) вручную вместо прямого вызова метода Unsafe.getAndAddInt . Но когда я использую jmh для проверки производительности, он показывает большую потерю производительности, хотя я написал тот же код, что...
246 просмотров

Тест Google с аргументами командной строки. Написание моей собственной основной функции?
У меня есть код, который выглядит примерно так: ... void benchMark(benchmark::State& state){ maxCapacity = state.range(0); // set up some stuff for (auto _ : state){ // time this code } }...
491 просмотров

clock_gettime выполняется дольше, когда программа запускается из терминала
Я пытался измерить время для фрагмента кода и заметил, что время было примерно на 50 нс быстрее, когда я запускал программу из своего редактора QtCreator, по сравнению с тем, когда я запускал ее из оболочки bash, запущенной в gnome-терминал. Я...
58 просмотров
schedule 14.10.2023

задержки и измерение конкретных инструкций
Поскольку современный процессор использует тяжелый конвейер даже для ALU, несколько выполнений независимых арифметических операций могут выполняться за один цикл, например, четыре операции добавления могут выполняться за 4 цикла, а не 4 * задержки...
249 просмотров
schedule 30.05.2023

Google Benchmark Frameworks DoNotOptimize
Меня немного смущает реализация функции void DoNotOptimize Google Benchmark Framework ( определение отсюда ): template <class Tp> inline BENCHMARK_ALWAYS_INLINE void DoNotOptimize(Tp const& value) { asm volatile("" : :...
114 просмотров