Hello everybody and thanks always for your help.
This time I would like to ask several questions regarding programming.

1) How do you visualize the load of a program(when it is running)?
I have been given a program that does network communication through TCP/IP, told that it has a heavy load and to find a better way of doing this. (I have the option of rewriting the program or doing another one from scratch)

2) What is the "overhead" of a program?

3) Any advice on tools or methods to do what I have been asked?

4) Also I heard there is a tool called wireshark. Never have used it but I think it is a sniffer..? being that I am tasked with doing a network program, this is really necessary right?

Any advice or comment is very much appreciated

Thanks!