Using the FPS monitor will not yield anything of value.
To measure performance, do ...
usec = OS.get_ticks_usec() # In Godot4: Time.get_ticks_usec()
# do stuff you wish to time here
print(OS.get_ticks_usec() - usec) # Prints the time spent, in microseconds.
Regardless, this isn't going to help much with the OP's question.
Your use case does not warrant caring about the performance, even ten years ago.
Still, because you want to learn,
consider that every extra code in every node adds at least one call to that specific routine.
Consider that signals are nothing but extra code executed at the end of the frame,
unless specifically specified otherwise using the DEFERRED flag.
Each Signal adds yet another call to the chain.
Personally, I do all my input in the main script and update coordinates of objects in threads,
instead of having my code fragmented all over the place between nodes. That, again,
is overkill for your use case of course, so it depends on what you're more comfortable with.
When you want to handle tens of thousands of things, then all these calls are pure waste.
In your specific case it doesn't matter, though.
I hope this was helpful.