The draw_text function along with all other drawing functions work fine for me. I'm not quite sure what you mean by adding a global variable, though. If you're trying to draw a string of text such as "Player lives: " + lives, where 'lives' is your global variable then make sure you have set up the global variable correctly and when drawing the text it looks like this:
Code:
draw_text(x,y,"Lives: " + string(lives));
Use string() to change a variable into a string. e.g lives = 3, would then equal "3".
As for the lag you're experiencing, this could just be down to your PC being slow or something... I've not experienced any issues with lag personally.