Вопросы по теме '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 просмотров
schedule
13.07.2022
Контрольное количество операций на итерацию 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 просмотров
schedule
07.10.2022
Странные эффекты производительности от близлежащих зависимых хранилищ в цикле поиска указателя на IvyBridge. Добавление дополнительной нагрузки ускоряет его?
Сначала у меня есть приведенная ниже настройка на IvyBridge, я вставлю код измерения полезной нагрузки в прокомментированное место. Первые 8 байтов buf хранят адрес самого buf , я использую его для создания зависимостей с переносом цикла:...
386 просмотров
schedule
18.01.2023
что на самом деле измеряет тест пропускной способности памяти STREAM?
У меня есть несколько вопросов по STREAM ( http://www.cs.virginia.edu/stream/ref.html#runrules ).
Ниже комментарий от stream.c. Каково обоснование требования, чтобы массивы были в 4 раза больше размера кеша?
* (a) Each array must be...
3060 просмотров
schedule
02.03.2023
почему Java Unsafe CAS (getAndAddInt) быстрее, чем код, написанный вручную
Я написал код cas (цикл while для compare_and_set) вручную вместо прямого вызова метода Unsafe.getAndAddInt . Но когда я использую jmh для проверки производительности, он показывает большую потерю производительности, хотя я написал тот же код, что...
246 просмотров
schedule
14.04.2023
Тест Google с аргументами командной строки. Написание моей собственной основной функции?
У меня есть код, который выглядит примерно так:
...
void benchMark(benchmark::State& state){
maxCapacity = state.range(0);
// set up some stuff
for (auto _ : state){
// time this code
}
}...
491 просмотров
schedule
17.08.2023
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 просмотров
schedule
25.04.2023