From MozillaZine Knowledge Base
- Most performance problems are due to not compacting the Inbox folder often enough. Deleted messages aren't physically deleted until the folder is compacted; they are merely hidden from view and marked for deletion. This means, for example, that Thunderbird might be loading a 100MB folder index when it displays a Inbox folder with just a few messages. (Compact is automatic starting in version 5)
- Thunderbird appears to parse the contents of the entire Inbox folder when it fetches and stores new mail for POP accounts. If the folder contains messages with certain missing headers (typically due to spam or a corrupted folder) it can get caught in a loop. The workaround (after first backing up your profile folder!) would be to move all of the Inbox folders messages to another folder (where you can identify and delete the troublesome messages later on) and compact the Inbox. In the worst case you might need to copy the messages in your Inbox to another folder, exit Thunderbird, back up your profile, delete both the "Inbox." and "Inbox.msf" files for that account in your profile and then run Thunderbird again. It will create a new empty Inbox folder if you do that.
- See if its due to an add-on by temporarily disabling all add-ons using "Help -> Restart with Add-ons Disabled". The Test Pilot add-on for example currently has a bug that causes performance problems. . The Lightning add-on can also slow performance. The Ubuntu Unity integration addon seems to drasticly slow downloading large attachments. 
- You might need to defragment the disk drive.
- Check that you have enough free physical memory so that applications aren't being slowed down by constantly being moved to/from the swap file. You can decrease swapping by reducing the number of running applications, and programs in your system tray. It might also help to set the minimum and maximum size of the swap file to the same value.
- Thunderbird uses an "xul.mfl" file in the profile to cache some of the data for the user interface. This normally increases performance, but sometimes it can get corrupted/bloated, and make things worse. The workaround is to exit Thunderbird and delete that file. Thunderbird will create a new one the next time you run it.
- If you're using Gmail with an IMAP account remove the All Mail folder from the list of synchronized folders, unsubscribe it, exit, and then delete both "All Mail." and "All Mail.msf". The All Mail folder doubles the amount of disk space used by your Gmail account and may cause some problems.
- Thunderbird loads a folder's *.msf file into memory whenever it opens the folder. By default it keeps up to 30 *.msf files open for 5 minutes (and their contents in memory), unless they are "special" folders, which it never closes. It loads the inbox.msf file for every account on startup. The best way to minimize the amount of memory used is to archive messages you have already read or otherwise no longer need in Inbox into folders that you rarely open. Moving a message to an archive folder opens it, so consider archiving messages by by year and month rather than yearly so that the archive being used doesn't get excessively large. 
- Thunderbird uses Direct2D hardware acceleration (enabled in version 5, disabled in version 9, and then re-enabled in version 31) to improve display performance. However, it can make it much worse if you have a low end graphics system, and in a few cases may hide the contents of a mail message. . It can be disabled by setting gfx.direct2d.disabled true and layers.acceleration.disabled true using the config editor. You can verify this by looking at the "GPU Accelerated Windows" line in the graphics section near the bottom of the screen for help -> troubleshooting information. It is set to 0 if hardware acceleration is off. If its on you should see something like 1/1 Direct3D 10. If you are using Linux or OS X try setting layers.prefer-opengl true instead, to see if you can use OpenGL for the hardware acceleration instead. Normally you would use Direct2D under Windows and OpenGL under OS X and Linux.  Several people have reported display performance problems even with these settings disabled, unless they disable Window's Aero theme. Using the NoGlass theme doesn't seem to help, but the SilverMel theme did. . One person reported that after upgrading from 24.6.0 to 31.0 the main window's fonts weren't properly aliased/smoothed and some windows had unusual tints. This was worked around by setting gfx.direct2d.disabled true 
- If Thunderbird is consuming a lot of GPU cycles on a high end graphics card despite hardware acceleration being disabled it might be due to a optional setting for that driver. For example, somebody with a ZOTAC GeForce GTX 970 AMP! Extreme Edition solved this by setting "Manage 3D Settings -> Global Settings" to default. 
- If you automatically check for updates it might time out if there is a problem with the Mozilla web site its using. The startup page also uses a web site. Visit http://status.mozilla.com/ to check the status of Mozilla's web sites.
- There have been performance problems using profiles on a file share (NAS), which have been fixed for most users.
- A few users have run into a problem where every operation takes about a minute. This is due to a bug creating places.sqlite-shm and places.sqlite-wal directories in the profile. There should be files with those names, not directories. The workaround is to exit Thunderbird and delete those two directories. 
- There have been several reports of performance problems that can be worked around by running Thunderbird using XP SP3 compatibility mode. This seems to mainly occur with Windows 8.
- One user reported that disabling chat by setting mail.chat.enabled and mail.chat.show_desktop_notifications to false eliminated a 5 second delay every time he selected a different message in the folder listing 
Why it's slower than the competition
Many Windows e-mail clients call the operating system (win32 API) to display the GUI, or call some wrapper that adds no significant overhead. Thunderbird uses XUL (Mozilla's XML-based User-interface Language) to display its GUI. This decreases performance but it allows users to write XUL extensions to extend the functionality, rather than having to write traditional plug-ins or ActiveX controls. There are hundreds of extensions available, most written by users.
There is a project to preload Firefox but there doesn't appear to be an equivalent for Thunderbird.
Global search ( Tools -> Options -> Advanced -> General -> Enable Global Search and Indexer) uses a background process to create a search index of messages for every account. And, if you have a IMAP account, Thunderbird has offline folders for copies of all of your remote folders using autosync (Tools -> Account Settings -> Synchronization & Storage -> Message Sync -> Keep messages for this account on this computer). The offline folders are useful for backup or reading messages when working offline (File -> Offline -> Work Offline), and to improve response time when reading messages.
If you are short of resources or Thunderbird doesn't respond quickly,
- Try running Thunderbird in safe mode
- Please file a bug report
- Test disabling both features. In necessary, you can still search for messages without global search by using filters or Edit | Search Messages.
Thunderbird 3 also added a optional disk cache. It mainly caches remote images. If you don't re-read many HTML messages with remote images consider setting the space used by it to zero in Tools -> Options -> Advanced -> Network & Disk Space -> Disk Space. It doesn't pre-fetch images for messages you haven't read yet.
Thunderbird 3.* uses approximately 50MB within a couple minutes under Windows. If it keeps increasing or uses more than 75MB you probably have a memory leak. Thunderbird 5 and later uses more memory. If it uses more than 200MB you probably have a memory leak. These are ballpark figures, the exact value depends upon your configuration, what version you're using, what operating system etc.
Try running Thunderbird in safe mode (not to be confused with Windows safe mode) to temporarily disable any added extensions and themes. If that works around the problem then try running Thunderbird normally, selectively disabling each extension/theme until you identify the culprit(s). If not, see Testing memory usage problems
Setting config.trim_on_minimize to true will cause Thunderbird free most of its memory when you minimize it if you are running under Windows. It defaults to false, which speeds up restoring the window.
If you make a connection using a anti-spam proxy such as the free version of MailWasher or use a anti-virus scanner consider disabling checking for new messages in Thunderbird, setting View -> Message Body As -> Plain Text, temporarily disabling those programs, and then restarting Thunderbird to see what effect not using those proxies has. Tools such as Process Explorer provide more detailed information than Task Manager, and can be useful when trying to figure out exactly what is going on.
How many accounts you have, the number of messages in the current folder, whether Thunderbird is configured to open new messages in an existing window, and are you using POP or IMAP accounts has some effect, but typically shouldn't cause a major problem. However, reducing the number of messages you keep in your inbox folder should improve the startup speed, help reduce the chance for corruption (if you regularly compact your folders) and decrease your memory usage.