Because I hate it when I search and search and finally fine a thread where they say "I solved it! Thanks all" and drop out of existence without saying WHAT they found I'm posting what I found here. Let me say that I have NOT researched every single option below. I found this on the Paper Forums where they explained most of it well enough for me that I felt no need to spend the time looking for an independent validation. I can say that in the week since I implemented this string I've seen no more "can't keep up" messages. The KEY settings are probably the Xms and Xmx flags. They said not to over assign memory as the OS requires a certain amount. If you assign it all to paper it WILL use it and starve the OS. You need to leave at least 8G to the OS. As for the rest of the flags, they are essentially tweaks to improve speed and save RAM.
Ninja Turtle posted a link that I think is the same one I had found if you want to read about the flags start there.
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -Dusing.aikars.flags=
https://mcflags.emc.gs -Daikars.new.flags=true -jar paperclip.jar nogui