Execution Speed of Threads



Most of the documentation regarding GCD discusses when your block or task will get executed (priorities, scheduling time, etc). My concern is the actuall peformance
of executing lines of code within a block.

When i run blocks on the main thread and want to measure performance I use BNRTimeBlock that was posted on one of your Big Nerd Ranch blogs. In one instance
when I was simply iterating through a large intrusive linked list I measured about 700 milliseconds for completion.

If I take that same block and measure execution time within the block (again using mach_absolute_time() there is an increase of execution time for the lines of code. in some instances I will get an additional 200 to 300 milliseconds. I experiment with global queue using high priority thinking that if it is a high priority not only will the block begin sooner but will get executed faster …but that did not work.

Are the clock speeds for executing instructions slower on these GCD threads? Maybe the main queue has a higher clock rate and all of the queues are throttled back??