you can code this yourself directly in construct, but it can be a bit tricky for beginners.
Also, there is no need to do this unless you notice slowdown in your game, because the runtime is hardware accelerated and very fast.
How are the sprites that are not on screen managed? are they all 'ticked' even when not on screen?
Yes, but you can add code which stops cpu-intensive events if the sprites aren't onscreen.
sprite is on screen
subevent -run checks
subevent -more tests
this way, sprites are only checked to be onscreen, and won't eat up cpu doing all kinds of other tests and checks when not needed.
Unless your game is a very small resolution (320x240), then optimizing graphics will be your main concern.