Есть ли преимущество в скорости использования небезопасного кода в .Net для обмена объектами сложных типов? - PullRequest
0 голосов
/ 17 октября 2010

Вот мой текущий код подкачки для замены 2 объектов KeyValuePair в массиве:

KeyValuePair<int, T> t = a[i];
            a[i] = a[j];
            a[j] = t;

Будет ли какое-то преимущество в скорости использования небезопасного кода и простого обмена указателями двух объектов? Или компилятор эффективно сводит этот безопасный код к эффективному выполнению именно этого?

Ответы [ 2 ]

4 голосов
/ 17 октября 2010

Нет, быстрее не будет.

В худшем случае это преждевременная микрооптимизация.

Фактически, это будет на несколько порядков медленнее, поскольку вам нужно закрепить массив (используя ключевое слово fixed ), чтобы получить указатель на него.

0 голосов
/ 19 апреля 2012

Есть место для указателей .Net в каждой оптимизации.Не очень в вашем конкретном случае, но такие вещи, как круговая проверка избыточности, указатели могут дать нам более оптимальное решение.

...