Есть ли какая-либо разница в производительности при последующей индексации небезопасного массива?

#c# #pointers #unsafe

#c# #указатели #небезопасный

Вопрос:

 long* array = stackalloc long[50];

1) array[10]

2) *(array   10)
  

Итак, должен ли я заменить вторую версию, потому что она быстрее, или они одинаковы, как только мы получили указатель?

Комментарии:

1. ну, если они будут разными, я думаю, мой вопрос можно изменить на «почему», тогда они разные. Хм, вы сказали, что они будут другими, теперь это ушло.

2. повторите «если» — я удалил предыдущий комментарий, в котором я ошибочно думал, что вы сравниваете производительность указателя с производительностью вектора — извините, если это добавило путаницы. Два показанных подхода к указателю должны быть практически идентичны.

3. хорошо, мои тесты не показали разницы, но я действительно отчаянно ищу прирост производительности, так что .. =)

4. это должно сработать чертовски быстро. Если это происходит недостаточно быстро , вам пришлось бы быть намного более конкретным в отношении того, что он делает с данными.

5. я делаю довольно сложные вещи 1894107877200 раз, так что все имеет значение..

Ответ №1:

Две записи в основном одинаковы, просто два способа записи. Конечно, # 1 лучше, потому что он выглядит лучше 🙂