Why does Bitcoin-QT use so much memory?
While there are inevitably small efficiencies to gain in code, the reality is that verifying and storing transactions is fairly resource intensive, and Bitcoin-QT verifies and stores every transaction ever made on the Bitcoin network.
Verifying is the process of checking prior transactions that make up the current transaction to ensure validity of the funds used in the transaction. For example, if Alice sends 10 BTC to Bob, and Bob wants to create a transaction sending 5 BTC to Charlie, then a node would first look at the blockchain to see that Alice had sent 10 BTC to Bob to ensure Bob actually has 5 BTC to send to Charlie.
Even before a transaction is included in the blockchain, it must be verified by Bitcoin-QT before the transaction will be passed along to the next node. As there are typically a few transactions per second on the Bitcoin network, this process can quickly eat up system resources.
The extensive memory usage of Bitcoin-QT is likely mostly attributed to this transaction verification process.
Several other Bitcoin wallets are considered “Lite” wallets, and will not download and verify the whole blockchain. These lite wallets only download and verify transactions related to your own addresses and funds, and will generally use much less memory than Bitcoin-QT. If you find yourself running low on memory or other system resources, a lite wallet might be a better choice. Multibit and Electrum are both recommended lite wallets.