'ref' не передает сам объект в функцию, вместо этого он передает ссылку на переменную, в которой он хранится / at.
Если объект является классом или интерфейсом, то всякий раз, когда вы обращаетесь к этой переменной в функции, он должен разыменовывать ее, а затем обращаться к переменной. Если он был передан без ключевого слова ref, ему не нужно будет выполнять шаг разыменования (таким образом, он будет немного быстрее).
Если объект является структурой (или перечислением, или другим базовым типом), ключевое слово 'ref' передает ссылку на переменную, в которой хранится структура, что по-прежнему вызывает SLR-скорость разыменования при каждом его использовании, но если Вы не указываете это, тогда программа должна выделить память для нового экземпляра структуры и затем скопировать ее. В большинстве случаев быстрее передавать структуры с помощью ключевого слова ref, но это может быть не так, если это действительно небольшая структура, или если она сильно разыменована (и я имею в виду LOT).
Так что, если вы передаете структуру, тогда обычно лучше использовать ref, иначе на самом деле особой разницы не будет (издержки на этапе разыменования незначительны).
Да, и чтобы фактически ответить на вопрос, Bitmap - это класс, поэтому ключевое слово 'ref' на самом деле не повлияет на скорость по сравнению с параметром, отличным от 'ref'.