Cache Preferences

In the File Selector, you can select a file format configuration that may specify that PowerGREP should convert files in proprietary formats into plain text so that they can be searched through. In the Cache section in the Preferences screen, you can specify whether PowerGREP should keep a cache of these plain text conversions.

Cache Preferences

Decoding proprietary file formats is quite CPU-intensive. Usually, decoding the file takes several times longer than actually searching through it. Therefore, PowerGREP keeps a cache of the decoded files. If you search through the file a second time, and the file is in the cache, PowerGREP can skip the decoding step and simply search through the cached copy of the file. If you run the same search twice, and all decoded files are still in the cache, you’ll notice that the second search runs many times faster than the first one. This is particularly handy when fine-tuning search terms or narrowing down search results with successive searches. The cache is shared by all instances of PowerGREP that you run on your computer. If you start multiple instances, you can run multiple searches on the same set of files simultaneously.

By default, PowerGREP will store its cache in the folder that Windows designates for applications to store temporary files. You can select a different folder if you like. If you select a different folder on the same drive, PowerGREP moves its cache. If you select a folder on another drive, PowerGREP clears its cache. You should select a folder on a local drive. If your computer has an SSD (solid state drive) and a traditional spinning hard drive, choose a folder on the SSD to maximize the performance benefit of the cache.

All PowerGREP instances running on your computer automatically share the conversion cache on your computer. PowerGREP instances running on other computers cannot share the cache on your computer. You should choose a local hard drive rather than a network drive to store the cache for maximum performance and to make sure that PowerGREP instances on other computers won’t use the same cache. PowerGREP will store its cache on a network drive if you tell it to, but you have to make sure that only one computer will access the cache at any time. If two people using PowerGREP on their own computers access a networked cache folder at the same time, the cache will become corrupted.

The cache should be large enough to store all the files you’re working with. If PowerGREP runs out of cache space during a search, it prunes files that were converted during previous searches from the cache. It first prunes the files that you searched through the longest ago. If after pruning all files from previous searches the cache still isn’t large enough to hold all the files converted during the present search, then PowerGREP stops adding files to the cache during the present search.

If only half the files you’re searching through fit into the cache, then the first half of the files will be cached when the search completes. If you then run another search on the same set of files, the first half of the files will be read from the cache, and the second half will be converted again.

If the cache is large enough then all files will be in the cache when the search completes. If you then search through the same set of files again, PowerGREP will read all the files from the cache.

You can specify how many megabytes of disk space you allow PowerGREP to use for its cache. The default is 1,000 megabytes which equals one gigabyte. You can make the running cache as large as you like, within the amount of free space on your hard disk. If your hard disk has 100 GB of free space, and you want PowerGREP to repeatedly search a big file server overnight, you can set aside 90,000 MB for the cache and have plenty of room to spare on your hard disk.

The “running” size is used as long as at least one PowerGREP instance is running on your computer. When you close the last instance, PowerGREP trims the cache down to the “not running” size, if you set it smaller than the “running” size. If you tend to work with the same set of files over and over, you should set the “not running” cache to be the same as the “running” cache. Then all converted copies will still be available the next day, and your searches will run at full speed. If you have limited free hard disk space and have other applications that use a lot of temporary disk space, trimming the cache is probably a good idea.

If you set the “not running” cache size to zero, PowerGREP clears the cache entirely when you close the last instance. If you set the “running” size to zero, PowerGREP never caches any files in the first place. You should only disable the cache if you simply don’t have enough disk space to cache all converted files, or if you never search the same file twice.

Only files in proprietary formats are cached. These are the files that match any of the file masks you’ve specified in the File Format Configuration and for which you’ve selected one of the options to convert the files using an external application, an IFilter, or PowerGREP’s built-in decoder. When estimating the required size of the cache, you only need to count these files.

If you run PowerGREP silently to execute actions in an automated fashion, you can use the /nocache command line parameter to disable the conversion cache for actions that are executed silently. That way automated actions don’t clutter up the conversion cache.

PowerGREP Conversion Manager

If you run more than one PowerGREP instance at the same time, the conversion cache is automatically shared between all instances. PowerGREP’s conversion manager handles this in the background. While one or more instances of PowerGREP is running, an application called PowerGREPConversionManager.exe will be running in the background. When you close the last PowerGREP instance, the conversion manager closes automatically.

If you set both the “running” and “not running” cache sizes to zero, then the conversion manager is not used at all.

Manual Caching

There may be situations where you want to search repeatedly through the same set of files but don’t want to use the conversion cache. Maybe there’s not enough space on your PC for the cache or maybe others on your network need to search through the same files. In such situations, you can follow the example titled “convert files in proprietary formats to plain text” to create your own cache of plain text conversions on a network server.