So how much ram do you suggest me to allocate? 2gb sounds right / 1.5gb?
Well I am playing SSP that is why I allocate that much ram though I thought it could help the lag spike because I assume lag spike happens when there is not enough allocated ram
When you allocate too much ram for Java/MC you essentially starve Windows of operating headspace... Windows 7/8/Vista needs 1-1.5GB or it has to start doing it's work in small pieces. This causes programs to have to load in chunks that fit in the remaining space, working on those chunks and saving the results to the disk's "swapfile" while grabbing a fresh chunk to work on and sometimes having to swap chunks from the swapfile if the data interacts.
This slows down the execution of the program considerably the more it has to read and write to the disk until you get to a point where the system is constantly running the disk to the exclusion of everything else, hence lag.
Another thing that happens is that the internal "Garbage Collection" function of Java (generally cleaning up ram for reuse after the application finishes with it) can only operate efficiently with so much ram... I've heard that the limit is right around 4GB.