I think that the slowdown in Windows is because the NTFS is significantly slower than than ext3, which means that on Windows the app server spends more time waiting for the multitude of jar jar files to load. At least that is my guess. On my dual-boot system at home it takes jbossas 1/2 the time to boot on Linux as it does on Windows.
Unfortunately, I don't know what you can do to get jbossas to use less cpu time during startup. Other than waiting for the file system to load jars or read xml config files, and waiting on the odd network query (you can browse through the forums to see who has had issues with that), most of the time is spent in purep rocessing as it initializes the boatload of services.
On a multi-processor system, you could limit jbossas to using only one of the processors. That would leave the other processors available to do other things.
Unfortunately I have the same problem when I'm running our management application e.g. list all extension in the IP-PBX.
Then it affects the ongoing traffic/calls in the IP-PBX because of the High CPU load. I don't know if it can be the I/O stuff e.g. Network, sockets.
I have done some "cpu=samples" and it shows a lot of CPU time in the java sockets, but I don't know if it because of it is in the "Wait" state.
I have tested my application on a previous version of SLES (SLES9) that we have run before, then I can stress the JBoss to almost stop executing.
The conclusion I have is the new POSIX thread library on SLES10 is not working with the Sun's JVM 1.5 and 1.6.
Does any one have a solution how to run with an older library? (LD_ASSUME_KERNEL=2.4.1 is not working).