SSD1306 LCD and nonblocking libraries?

I have to read time between pulses or I would definitely use interrupts.
Wire is set to 400khz by default when used with the Adafruit library
The problem with the Adafruit library is that it sends the entire buffer to the display every time you try to write to it. So you its faster to send everything in one bunch. Unfortunately I cant find a faster library.
The problem with updating a UI slowly is that it's very sloppy and it makes it much more difficult to use . I might just have to figure out out how to code it all on my own, but I would really prefer not doing that.