A couple of days ago, I noticed that the performance of a customers SharePoint search crawl was quite slow, and we need to reduce the time this took. Here are some of the steps we looked at:

1. See Central Administration > Operations > Services on Server > Office SharePoint Server Search Service Settings and set to Maximum (NB this would increase load on the front-ends)
2. Amend the timings of various schedules for different content sources so as not to have them overlap. We set them to do a full crawl at the weekend, and incremental only Monday - Friday.
3. Replace the Adobe PDFFilter (AcroExch.Document, which is single threaded I think) for another commercial product such as Foxit PDF iFilter which reportedly is much better performance wise.
4. Reduce the bad file retries - there is a setting in the registry that controls the number of times a file is retried on error. This will slow down incremental crawls as the default is 100. This retry count can be adjust by a registry key (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office Server\12.0\Search\Global\Gathering Manager) by setting DeleteOnErrorInterval = 3 (decimal).
5. Increase the RAM on the indexers.
6. Add additional processors.
7. Run the disk defragmentation tool out-of-hours.

There are of course additional things you could do:

A.
Make SQL alterations that could be made to increase performance.
B. Ensure there are no network issues between the indexer and the front-ends.
C. Ensure the disk is quick on the indexer.