If we periodically sample a continuous band-limited signal at a sufficient sampling rate, we can estimate its spectrum by using Discrete Fourier transform (DFT). DFT of a finite discrete signal sample finds amplitudes of a predefined set of frequencies: each frequency is a multiple of the fundamental.
But suppose the original continuous signal consists mostly of incommensurable frequencies, e.g. $a\exp(it)+b\exp(\sqrt2 it)+c\exp(\pi it)$. Then, even if there's only a handful of such frequencies, the DFT of our sample will be nonzero virtually at every point, because the constituent frequencies will miss the ones represented by the DFT, and their peaks will be widened.
Now, to get a higher-resolution estimate of the spectrum, we could increase sampling time, so that the fundamental frequency gets smaller. But to get a really good estimate of the frequencies this might mean a hundredfold or more increase in sampling time, which is not always practical.
It seems that for a not too rich spectrum we should be able to find better set of frequencies from the original, smallish sample. E.g. for a single-frequency signal we could try minimizing energy of difference of the signal from a test wave, searching for the minimum in the (continuous) space of frequencies and phases. Similar process could be applied to a few-frequencies signal, removing the best estimate of a frequency component from it at each iteration over the frequencies.
The above minimization procedure seems like a brute-force solution. Are there more efficient ways to achieve the same?