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

Микрообъект пытается измерить производительность "маленького" бита кода. Эти тесты обычно находятся в субмиллисекундном диапазоне. Проверяемый код обычно не выполняет ввода-вывода, или же это проверка какой-то отдельной задачи ввода-вывода.
11

Как написать правильный микро-тест в Java?

Как вы пишете (и запускаете) правильный микро-тест в Java? Я ищу некоторые примеры кода и комментарии, иллюстрирующие различные вещи, чтобы думать. Пример: должен ли эталон измерять время/итерацию или итерации/время и почему? Связанный: приемлем ...
02 февр. '09 в 17:39
5

Почему (a * b!= 0) быстрее, чем (a!= 0 && b!= 0) в Java?

Я пишу какой-то код на Java, где в какой-то момент поток программы определяется тем, являются ли две переменные int "a" и "b" ненулевыми (примечание: a и b никогда не отрицательный и никогда не должен находиться в пределах целых чисел переполнени...
21 февр. '16 в 1:51
11

Как я могу найти недостающее значение более кратко?

Следующий код проверяет, являются ли x и y различными значениями (переменные x, y, z могут иметь только значения a, b или c) и если это так, устанавливает z третьему символу: if x == 'a' and y == 'b' or x == 'b' and y == 'a': z = 'c' elif x == ...
09 янв. '12 в 17:21
7

Оператор if vs if-else, который быстрее?

Я спорил с другом на днях об этих двух фрагментах. Что происходит быстрее и почему? value = 5; if (condition) { value = 6; } и if (condition) { value = 6; } else { value = 5; } Что, если value - матрица? Примечание. Я знаю, что v...
04 апр. '17 в 8:28
7

В Java может & быть быстрее, чем &&?

В этом коде: if (value >= x && value <= y) { когда value >= x и value <= y являются такими же правдоподобными, как false, без определенного шаблона, использование оператора & выполняется быстрее, чем использование &&a...
20 сент. '16 в 7:34
4

Скрытая производительность в Scala?

Я столкнулся с этим старым вопросом и сделал следующий эксперимент с scala 2.10.3. Я переписал версию scala, чтобы использовать явную рекурсию хвоста: import scala.annotation.tailrec object ScalaMain { private val t = 20 private def run() {...
22 мар. '14 в 17:38
1

Почему шаблон привязки StringBuilder sb.append(x).append(y) быстрее обычного sb.append(x); sb.append(у)?

У меня есть microbenchmark, который показывает очень странные результаты: @BenchmarkMode(Mode.Throughput) @Fork(1) @State(Scope.Thread) @Warmup(iterations = 10, time = 1, timeUnit = TimeUnit.SECONDS, batchSize = 1000) @Measurement(iterations = 40, t...
02 июн. '17 в 17:14
0

Java 11 - снижение производительности по сравнению с Java 8?

ОБНОВЛЕНИЕ: видя, что у каждого метода могут быть проблемы с производительностью, я решил разделить этот вопрос на две части: Пустые методы заметно медленнее в Java 11, чем Java 8 Трассировка стека заметно медленнее в Java 11, чем в Java 8 Исходно...
28 дек. '18 в 16:10
3

Разница между численными и длинными функциями MATLAB

Я знаю, что length(x) возвращает max(size(x)), а numel(x) возвращает общее количество элементов x, но лучше для массива 1 на n? Это имеет значение или они взаимозаменяемы в этом случае? EDIT: Только для пинок: Похоже, что они одинаковы по про...
25 июн. '10 в 16:33
2

Почему две отдельные циклы быстрее, чем одна?

Я хочу понять, какие оптимизации Java делает для последовательных циклов. Точнее, я пытаюсь проверить, выполняется ли слияние фьюжн. Теоретически я ожидал, что эта оптимизация не была выполнена автоматически и ожидала подтверждения того, что плавная...
23 февр. '18 в 16:40
4

Почему суммирование массива типов значений медленнее, чем суммирование массива ссылочных типов?

Я пытаюсь лучше понять, как работает память в.NET, поэтому я играю с BenchmarkDotNet и диагностикерами. Я создал тест, сравнивающий производительность class и struct путем суммирования элементов массива. Я ожидал, что суммирование типов значений все...
09 дек. '18 в 19:38
13

Вопрос Java для цикла

с учетом этого примера: public static void main(final String[] args) { final List<String> myList = Arrays.asList("A", "B", "C", "D"); final long start = System.currentTimeMillis(); for (int i = 1000000; i > myList.size(); i--) {...
04 мар. '10 в 23:10
3

Почему проверка границ не устраняется?

Я написал простой benchmark, чтобы выяснить, можно ли исключить проверку границ, когда массив вычисляется поразрядным образом. Это в основном то, что делают почти все хэш-таблицы: они вычисляют h & (table.length - 1) как индекс в table, где h...
11 февр. '14 в 13:17
1

Странная JIT-пессимизация идиомы цикла

Анализируя результаты недавнего вопроса здесь, я столкнулся с довольно своеобразным явлением: очевидно, дополнительный слой HotSpot JIT-оптимизации фактически замедляет выполнение на моей машине. Вот код, который я использовал для измерения: @Outpu...
12 февр. '14 в 20:17
2

Почему логарифм медленнее в Rust, чем в Java?

Если я запустил эти тесты в Rust: #[bench] fn bench_rnd(b: &mut Bencher) { let mut rng = rand::weak_rng(); b.iter(|| rng.gen_range::<f64>(2.0, 100.0)); } #[bench] fn bench_ln(b: &mut Bencher) { let mut rng = rand::weak_rng...
11 июл. '17 в 14:33