Large directories - ECB - the Emacs Code Browser
Description: ECB - the Emacs Code Browser

Next: Remote directories, Previous: Integrating speedbar, Up: Common use-cases

### 10.6 Working with large directories

If `ecb-source-path` contains directories with many files and subdirs, especially if these directories are mounted net-drives (“many” means here something > 500, dependent on the speed of the net-connection and the machine), actualizing the sources- and/or directories- buffer of ECB (if displayed in current layout!) can slow down dramatically. If this is a problem the contents of certain directories and also the contents of the sources-buffer can be cached which increases the speed a lot. See the option `ecb-cache-directory-contents`.

IMPORTANT: The full speed-advantage of this cache-mechanism is only available if `ecb-show-sources-in-directories-buffer` is `nil`, i.e. sources of a directory are displayed in the ECB-sources-window. The reason is that only with a sources window the tree-buffer contents for the sources can be cached (i.e. the buffer-content of the ECB-sources-window) whereas with sources displayed in the directories buffer only the disk-contents of a directory are cached - which increases speed too but not so much as with sources displayed in the extra window ECB-sources.

The cache of a directory can be only refreshed by a POWER-click (with mouse or keyboard) onto the related directory-node in the directories-buffer of ECB (see Using the mouse).

See also the option `ecb-cache-directory-contents-not`. Here are some useful settings for both of these options:

- Cache all directories with more than 500 entries: Set `ecb-cache-directory-contents` to ((“.*” . 500)) and set `ecb-cache-directory-contents-not` to nil.
- Cache only all directories > 200 beginning with /usr/ Set `ecb-cache-directory-contents` to ((“^/usr/.*” . 200)) and set `ecb-cache-directory-contents-not` to nil.
- Cache all directories > 500 but NOT these beginning with /usr/: Set `ecb-cache-directory-contents` to ((“.*” . 500)) and set `ecb-cache-directory-contents-not` to (“^/usr/.*”).

Another way for getting a faster overlook for large directories with many source-entries is to apply an online-filter to the sources-buffer. This can be done via the command `ecb-sources-filter` or via the popup-menu of the sources-buffer.