I'am trying to perform as many as possible simultaneous http-downloads an IPad2 ( ios6.0 ). This is pure for testing what is possible on this device. Even not interested in GUI performance ( not important if it doesn't respond )
I've created a special HTTP-server that sends for x minutes data to the client. The data received is of no importance. I just measure the speed an how many concurrent downloads. I've implemented 2 different ways of scheduling 12 HTTP-requests.
NSOperation
One is done by using NSOperation objects in a Queue and set the NSOperationQueueDefaultMaxConcurrentOperationCount on 12
NSThread
The second implementation is by creating 12 NSThreads that perform a synchro http-request.
The requests are all sent to the same destination IP.
Observation
What I observe is that in both cases the 6th to 12th request get a TimeOut ( errorcode -1001 ). If 1 put the timeout-value to 80.0 seconds, I see that the 6th download starts when the 1st is done.
Questions
- Is there in IOS a limit on how many concurrent downloads?
- Is there an other way to perform these concurrent downloads ?
- Is there a way to bind a thread to a core ( so that it doesn't get an interrupt, like cpuaffinity in C++ ) or thread priority