2k, 4k или 8k - хороший выбор.
Неважно, сколько будет размер страницы, изменение скорости будет действительно незначительным и непредсказуемым.
Прежде всего, память C # может быть перемещена, C # использует компактный сборщик мусора поколений. Информация о том, где будут размещаться данные, отсутствует.
Во-вторых, массивы в C # могут быть сформированы из несмежной области памяти!
Массивы хранятся непрерывно в виртуальной памяти, но непрерывная виртуальная память не означает непрерывную физическую память.
В-третьих, структура данных массива в C # занимает на несколько байтов больше, чем сам контент (он хранит размер массива и другую информацию). Если вы выделите размер страницы в байтах, использование массива переключит страницу почти всегда!
Я думаю, что оптимизация кода с использованием размера страницы может быть неоптимизацией.
Обычно массивы C # работают очень хорошо, но если вам действительно нужно точное распределение данных, вам нужно использовать закрепленные массивы или распределение Маршала, но это замедлит сборщик мусора.
Использование маршала и небезопасного кода может быть немного быстрее, но на самом деле это не стоит усилий.
Я бы сказал, что лучше использовать массивы, не слишком задумываясь о размере страницы. Используйте 2К, 4К или 8К буферов.