В общем, 64-битный код не делает код быстрее. Это просто позволяет вам получить доступ к большему количеству памяти. Ваш код будет ускоряться, только если он был ограничен в памяти в 32-битном процессе. В Matlab это обычно вызывает ошибки Out Of Memory, а не замедления. А поскольку у вас всего 3 ГБ, вы, вероятно, не достигли 32-разрядного ограничения в 4 ГБ. Так что вы, вероятно, не должны ожидать ускорения. Замедление, однако, удивительно.
Используете ли вы объектно-ориентированный Matlab, особенно старый (до MCOS) стиль? В 64-битном Matlab в Windows существует известная ошибка, которая увеличивает накладные расходы при отправке метода. OO-код будет работать медленнее в 64-битном Matlab, чем 32-битный Matlab, при этом замедление возрастает с увеличением плотности вызовов методов. В моей кодовой базе (в основном OO) это примерно в 2 раза медленнее. Это о величине, которую вы видите.
См. Медленно ли работает MATLAB OOP или я что-то не так делаю? . (Там это обсуждается по касательной.)
Вы все еще можете запускать 32-битный Matlab в 64-битной Windows. (Хотя это официально не поддерживается.) Эта схема не страдает от замедления отправки метода, плюс она получает 4 ГБ виртуальной памяти вместо 2 ГБ, что было бы под 32-битной ОС. (Вероятно, полезно, если у вас> = 4 ГБ ОЗУ.) Если 32-разрядная версия работает быстрее на той же машине, вы должны сообщить об этом как об ошибке в MathWorks; чем больше пользователей упоминают об этом, тем больше вероятность того, что его исправят.