I can recommend these options:
sshfs -o cache_timeout=115200 -o attr_timeout=115200 ...
I believe this will avoid some of the round trip requests to fetch content or permissions for files.
Those options are not recommended if the remote files might be updated without the local machine knowing, e.g. by a different user, or a remote ssh shell. In this case, lower timeouts would be preferable.
sshfs simulates deletes and changes locally, so new changes made on the local machine should appear almost immediately, despite the large timeouts, as cached data is automatically dropped.
Here are some more options, but I haven't actually measured any success with them so far:
sshfs_opts="-o auto_cache -o cache_timeout=115200 -o attr_timeout=115200 \
-o entry_timeout=1200 -o max_readahead=90000 -o large_read -o big_writes \
The biggest problem in my workflow is when I try to read many deeply recursive folders, because sshfs performs a round trip request for each folder separately. This may also be the bottleneck with Eclipse.
Pipelining (sending multiple requests rather than one at a time) is not an option to help with this, since most apps will naturally block until one file stat is complete before moving on to the next. They weren't designed for high-latency filesystems.
But something sshfs could do would be to look ahead at the remote file system, collect folder stats before I request them, and send them to me when the connection is not immediately occupied. This would use more bandwidth (from lookahead data that is never used) but could improve speed.