Summary generation seems to take too long on Emacs 24. The culprit might be vm-decode-mime-encoded-words, which ends up creating a process to decode base64.
call-process-region(54 #<marker at 62 in *vm-workbuf*> "base64-decode" "d:/Cygwin/tmp/emb02812" (#<buffer *vm-workbuf*<2>> "c:/DOCUME~1/udr/LOCALS~1/Temp/vm190281173116") nil)
apply(call-process-region 54 #<marker at 62 in *vm-workbuf*> "base64-decode" "d:/Cygwin/tmp/emb02812" (#<buffer *vm-workbuf*<2>> "c:/DOCUME~1/udr/LOCALS~1/Temp/vm190281173116") nil nil)
vm-run-command-on-region(54 #<marker at 62 in *vm-workbuf*> #<buffer *vm-workbuf*<2>> "base64-decode")
apply(vm-run-command-on-region 54 #<marker at 62 in *vm-workbuf*> #<buffer *vm-workbuf*<2>> "base64-decode" nil)
vm-mime-base64-decode-region(54 #<marker at 62 in *vm-workbuf*>)
byte-code(... 3)
vm-decode-mime-encoded-words()
vm-decode-mime-encoded-words-in-string("?spam? =?UTF-8?B?U2F2ZQ==?= =?UTF-8?B?wqMyMA==?= =?UTF-8?B?b24=?= =?UTF-8?B?eW91cg==?= =?UTF-8?B?T21uaVBhZ2U=?= =?UTF-8?B?MTg=?= =?UTF-8?B?VXBncmFkZS4=?= =?UTF-8?B?UGx1cw==?= =?UTF-8?B?ZnJlZQ==?= =?UTF-8?B?c2hpcHBpbmc=?=")
(format "%s\n" (vm-decode-mime-encoded-words-in-string (vm-su-summary-subject vm-su-message)))
(list (quote number) (quote mark) ...)
eval((list (quote number) (quote mark) ...))
vm-summary-sprintf("%n%*%UD %2M/%-2d %-17.17F %8c%UB %I%s\n" [...] t)