When you use a base64 image, you save a http GET request to the server to download the image from the url, since the img is already embed in base64 inside the tag.
However, a image loaded to the client using base64 encode is 30% heavier, which is really bad if the image is naturaly big because it will increase bandwidth utilization.
Another problem is that base64 images are not cacheable. Hence, the client will always process it each time he opens the page, no matter how many times. Obviously, it will increase CPU time.
As you can see, there is a trade-off to think about. To increase performance, you should use base64 to load only the tiny images, since 30% of a small image is a low increase compared to the overhead of a round-trip http GET request. Then, you save the traditional http get request to the larger ones.