我在写一个H.264编码的测试程序。发现在编码一帧的过程中会启动GC,这样就严重的被打断,增加处理时间。下面有两个log,第一个是没被打断的,时间大概是90ms(09-17 09:29:35.461~09-17 09:29:35.550)。而第二个被打断,时间在210ms(09-17 09:29:35.945~09-17 09:29:36.156)。
请问一下,我如何让GC尽量不要运行。
09-17 09:29:35.461 V/VideoCameraView( 2267): start YzrAvcEncEncodeOneFrame
09-17 09:29:35.461 V/YzrCodec( 2267): YzrAvcEncEncodeOneFrame in
09-17 09:29:35.488 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:35.488 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:35.535 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:35.535 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:35.550 V/YzrCodec( 2267): YzrAvcEncEncodeOneFrame out 300
09-17 09:29:35.550 V/VideoCameraView( 2267): after YzrAvcEncEncodeOneFrame
09-17 09:29:35.945 V/VideoCameraView( 2267): start YzrAvcEncEncodeOneFrame
09-17 09:29:35.945 V/YzrCodec( 2267): YzrAvcEncEncodeOneFrame in
09-17 09:29:35.972 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:35.972 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:36.023 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:36.023 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:36.093 D/dalvikvm( 2267): GC_CONCURRENT freed 447K, 56% free 9453K/21383K, paused 1ms+8ms, total 76ms
09-17 09:29:36.093 D/dalvikvm( 2267): WAIT_FOR_CONCURRENT_GC blocked 13ms
09-17 09:29:36.097 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:36.097 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:36.144 V/VideoCameraView( 2267): onPreviewFrame in
09-17 09:29:36.144 V/VideoCameraView( 2267): onPreviewFrame out
09-17 09:29:36.156 V/YzrCodec( 2267): YzrAvcEncEncodeOneFrame out 2337
09-17 09:29:36.156 V/VideoCameraView( 2267): after YzrAvcEncEncodeOneFrame
------解决方案--------------------
应用层没有办法控制GC的处理