I did a couple of tests using Emacs 24.5 with the 32-bit build provided by GNU Emacs and the 64-bit build provided by Emacs-w64 - I thought the 64-bit build would be a little slower due to the larger pointer size but the differences were pretty negligible for ~20 second processes.
Then at Tobias's suggestion, I tested loading an .org file, and the 64-bit build was about 20% slower.
All times in seconds
| Test | 32-bit | 64-bit | Result |
|--------------------------+--------+--------+------------|
| Startup a 200kb init.el | 19.1 | 19.0 | |
| | 19.4 | 18.9 | |
| | 19.3 | 19.3 | |
| average | 19.3 | 19.1 | same |
|--------------------------+--------+--------+------------|
| Open a 220mb binary file | 19.6 | 19.4 | |
| | 18.4 | 19.5 | |
| | 18.9 | 18.9 | |
| average | 19.0 | 19.3 | same |
|--------------------------+--------+--------+------------|
| Open a 10mb .org file | 108.0 | 124.7 | |
| | 105.6 | 128.4 | |
| | 113.4 | 136.9 | |
| average | 109.0 | 130.0 | 19% slower |
(note that it's just a coincedence that the first two tests have similar times)
The test script:
;; startup time with 200kb init.el
(message (emacs-init-time))
;; test file load times
(require 'benchmark)
(message "%f" (benchmark-elapse
;;(find-file "c:/apps/emacs/bin/emacsclient.exe") ; 1mb file
;;(find-file "c:/users/bburns/downloads/Core-current.iso") ; 10mb file
(find-file-noselect "c:/users/bburns/downloads/LibreOffice_4.3.6_Win_x86.msi" t) ; 220mb file
))
;; test .org file fontification
(message "%f" (benchmark-elapse
(find-file-noselect "test10m.org" t) ; 10mb file
))
My init file is fairly large so takes a while to load - it exercises loading the exe and running a lot of elisp code, loading a file tests the underlying C code and buffer handling, and loading the .org file exercises fontification.
So for these tests, it looks like the 64-bit build is slower, unless the 32-bit build had some different optimization settings - the README for the GNU Emacs distribution doesn't have any information on the build, so presumably it was just a plain make, which is what the 64-bit build used, if it used the procedure on the wiki.
The build process for 64-bit is easier, at least as far as setting up the environment, but I think you can also make a 32-bit build using MSYS2, so I'll add some tests for that when I get a chance.
See here also for a discussion on some performance differences between 32 and 64 bit applications.
And just for completeness, the .org file was just repeated blocks of
* headline 1
This is some text.
** subheading 1
This is some more text
** subheading 2
This is a table
| one | two | three |
| 1 | 2 | 3 |
| | | |