Drupal has a 404 caching problem.
Drupal's page cache is a fantastic and simple way to improve performance in production. If an anonymous user goes to
http://yoursite.com/somepage twice, the second page load is a lot faster because Drupal doesn't spend time re-rendering it; it simply serves it from the cache.
But the problem is that pages are cached by their path. That means that the server has to do all the work to render the 404 page each time a new path is not found. This can be particularly noticeable if your 404 page is a node, view, or other rendered page.
This module takes over the caching process when a page is not found and makes it a little smarter. It's been tested with nodes, but it should work with any 404 page that is served through the menu system. It is compatible with multilingual sites. It caches the 404 once per language.
If you are already using Fast 404 (or Drupal 7's built-in version), you don't really need this module, and compatibility with those configurations hasn't been tested. It's a good alternative though when you need 404 pages with some dynamic content from your site and don't want to have to update HTML files when your site structure changes.