Since your guitar string can only produce a handful of pitches, a full FFT is wasteful.
Take the lower E string. The tones are approximately 5Hz apart.
Assume a sampling rate of 11025 Hz. To get your FFT bins spaced closely enough together, you will need an FFT length of at least 2048 resulting in 1024 bins. You calculate 1024 bins, then discard 1000 of them because there are only 20 notes on a guitar string. Along with that, you also have a time resolution of 185 milliseconds.
You can do overlapping FFTs and improve your time resolution. That works, and may be all the solution you need.
An alternativ would be to use the Goertzel algorithm. It implements a discrete fourier transformation for individual frequenicies. It is efficient enough that it is used in small microprocessors to do DTMF decoding - simultaneous decoding of 8 frequencies and short decoding times.
Using the Goertzel algorithm, you only get the tones you are interested in. You can also "tune" the computation of the values so that you get a clear separation of notes - without changing the computation time.
You can get an update on the intensity for each audio sample.
It does take at least one or two complete cycles of a note for the output value to reach maximum. That's like 23 milliseconds for the low E - but only 3 milliseconds for the high E string. That's to reach full output.
In the FFT, your time resolution is fixed by the length of the FFT and the overlap. Thing is, you *need** better time resolution on the higher notes, and can live with lower time resolution on lower notes.
A similar thing applies to the frequency bins. You need closer bins to separate the low notes, but could live with wider spaced bins at the high notes.
Using the FFT, you have to compromise and end up doing long FFTs with large overlap to get the time and frequency resolution you need.
This isn't a theoretical solution. I actually have a Goertzel based analyser that can detect all notes on a guitar and translate it to a note name in realtime. Has a graphical display of which note is currently playing. Just don't play more than one note at a time...
I was working on recognizing chords when I got sidetracked on a different project and never got back to the guitar thing.