I connect from home-Mac to work-Mac over VPN. Then I have 2 options in Finder:

  1. VNC: screen-share (restricts you to work-monitors' resolution)
  2. AFP: mount the work-directory, then open the Xcode project (can fully utilize larger home-monitors)

Now, why is option 2. much slower than 1.? Is Xcode so network-hungry? The AFP itself seems to be slow, that is, it takes ~2 s to open up a not-yet-"indexed" directory (and all its files' icons).

OS X 10.9 built-in VPN (PPTP) & VNC, Xcode 5

Anecdotally, the VPN itself most likely isn't an issue, since a colleague is satisfied with his VPN Windows-to-Windows performance over slower home-connection.

  • 2
    What speeds do you get when you copy files from the work-directory to a directory on your local harddisk?
    – Hobbes
    Oct 29 '13 at 16:22
  • @Hobbes, I get 85 kB/s (home -> work) and 700 kB/s (home <- work). Measured with rsync -a --progress --stats --human-readable source destination.
    – Blaz
    Oct 29 '13 at 16:49
  • 1
    Does Activity Monitor show large amounts of network traffic during an AFP session?
    – Hobbes
    Oct 29 '13 at 17:49
  • @Hobbes, interestingly no. While doing a build both speeds hover at ~40 kB/s. If I move between the classes fast I can get it to 100 kB/s max. To give you an idea of how slow it is: after switching to a ~500 LOC class, I have to wait ~10 s to get syntax highlighted. :)
    – Blaz
    Oct 29 '13 at 18:16
  • There's one more thing to check then: is Xcode slow if you open a project on your local disk?
    – Hobbes
    Oct 29 '13 at 18:31

You are basically being punished by having put your project on a slow, slow harddisk. There is much more network traffic than you think when working with files remotely and on such a slow connection you will really feel it. Most modern IDE's expect files to be locally available, not on a slow, remote drive.

I would suggest looking into mirroring your work files between your work and home machine as needed. To my knowledge there are two basic approaches:

  • File synchronization: Use "rsync" to move changed files back and forth as needed. This is good if you need to edit locally, but compile remotely.
  • Source repository: Work locally until you have a satisfying result, commit the revised sources locally to the repository, and then update the remote sources from the repository. This works well if you can work fully locally.

Please report back what worked well for you.

(Incidentially this is why Remote Desktop for Windows is such a good thing. It uses the bandwidth very, very well making Windows usable even over a very slow connection, and allows for a much larger display than on the remote host)

  • Sensible suggestions, but is it normal that it takes ~2 s to (fully) open a directory over AFP? (I've updated the bold part of the question.)
    – Blaz
    Nov 8 '13 at 16:35

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .