This has been a bit of a pain for me, I'll try to provide as much info as possible. My set-up is as follows:
I have a laptop running Windows 7, with a wired Ethernet connection to a router. I have a 1TB external hard drive connected via USB 2.0 to the Windows laptop, and externally powered.
Running on the Windows laptop, I have VirtualBox running FreeNAS 8.0 Release VM with its primary hard drive VDI file residing in the root folder of the external USB hard drive.
I have another virtual hard drive VDI named 'media1' which is also sitting in the external USB hard drive's root folder, and connected via virtual IDE controller to the FreeNAS VM.
The FreeNAS VM's virtual NIC is bridged to the LAN via the host OS (Windows 7). I have CIFS and AFP shares running. When I load up the Windows 7 host machine and connect to a CIFS share on the FreeNAS VM [running in VirtualBox on the same machine], I can transfer files at about 10 mega bytes per second. When I connect via AFP / CIFS from another machine on the LAN, regardless of whether it's via wired Ethernet or 802.11n, I get transfer speeds of about 10-30 mega bits per second. I know TCP has overhead, but a one-tenth reduction? I can literally download files from the Internet faster than I can transfer them to and from my VM. There's no difference in read/write speed at all...both sit at about 15 mbps all the time.
AFP is even slower. I'm logging into an account with AFP. With CIFS I'm connecting unauthenticated. I hope I've provided enough vital information. If more configuration settings are needed, I can provide them, but I'm guessing the actual bottleneck has to do with the infrastructure rather than the configuration? Do let me know if I can elaborate at all. Any advice at all would be very appreciated.