Thanks DevBabu, glad you found it useful. I think the issue you have is related to the fact that you are performing an individual iControl request for each of these items.
Each iControl request takes milliseconds to perform which is a long time so you are better to make few iControl calls that retrieve large amounts of data and loop through that data, than to make hundreds of individual iControl calls that retrieve a small amount of data.
To give you an example here, you should do three iControl calls - retrieve all pools, all pools status and all pool members. Then loop through these arrays as required. This is generally true whether using SOAP or REST.