Running out of memory, how can I reduce the size of wallet.dat? My wallet.dat is 260MB big. I am using 32bit bitcoind (bitcoin-0.10.2), linux. 

Bitcoind is having memory problems:

 ["errors"]=&gt;
  string(89) "EXCEPTION: St9bad_alloc       
std::bad_alloc       
bitcoin in ProcessMessages()       


Current memory allocation:
  2.9 GB virt, 2.3 GB virt.

How can I resolve the memory problem? Can I delete old unused addresses?
I did not find an API call to remove old addresses.
Probably bitcoin-0.11.0 does not resolve the problem either, it has already nearly same values: 2.45 GB Virt, 2.1 GB Res.
Bitcoind uses a lot of virtual memory, due to having multiple threads, and maintaining several node-wide and per-peer caches of data (UTXO cache, mempool, relay cache, network buffers, known invs list, ...). 

Until recently, many of these were effectively unbounded, depending on network conditions. The upcoming release of Bitcoin Core 0.12 has far better internal memory accounting, UTXO set limiting, mempool limiting, and more compact internal representations.