Posts

Post not yet marked as solved
0 Replies
263 Views
I'm working on some AR Game which contains three major modules:an AVCaptureSession to capture video frame dataan Algorithm modulea Render EngineThe routine of app is very simple:obtain one frame of data from AVCaptureVideoDataOutput, then pass it to algorithm modulealgorithm module processes frame data on its own dispatch queue, then pass the results to render enginerender engine uses the results to update whole virutal sceneEach module has its own working thread (or dispatch queue), but only one module is active because they work serially.The problem is when the app run on some low level devices (like iPhone6), the fps is not stable. After profiling, I found that sometimes, both cpu cores are occupied by some system process (like medieserverd, backboardd ...) and my working threads could be preempted for a long time (like 10ms or even longer)Is there any way to make sure my working thread can occupy at least one cpu core?Now I'm using dispatch queues to organize my work tasks. Will it be better to use NSThread directly?
Posted
by sxc.
Last updated
.