[x264-devel] MSVC patch test results under MSVC 2013
肖卫华
xiaoweihuacom at 126.com
Sun Apr 6 14:08:09 CEST 2014
kdkkdd
发自我的 iPad
在 2014-3-30,18:56,Joe Stevens <jgsteven at yahoo.com> 写道:
> Martin, Jason, and Steven,
>
> Thanks for your responses. Per Martin's comment I tested with the MSVC 2013 update 2 CTP and was able to compile x264 with only his patches. Note that in my original test both binaries that I ran the test with were x86/32 bit builds using with the same configure command and that the gcc build was the exact same code as the MSVC one (e.g., it had the MSVC patches applied as described in my previous email in order to make it an apples-to-apples comparison, the only differences being CC and CFLAGS when configured and built).
>
> I did some
> additional testing, and wanted to post a few additional numbers. These tests were done with power management off, a high definition input file (an ATSC capture), and the output file set to NUL and got the following results for average FPS across 6 runs of the encode.
>
> 32bit GCC with inline ASM: 1.38 FPS
> 32bit GCC without inline ASM: 1.34 FPS
> 32bit MSVC 2013 Update 1 with both sets of patches: 1.27 FPS
> 32bit MSVC 2013 Update 2 CTP with only Martin's patches: 1.25 FPS
> 64bit MSVC 10`2 Update 2 CTP with only Martin's patches: 1.40 FPS
>
> So my conclusion is that MSVC is slightly slower but that this difference basically goes away when using a 64 bit build (I didn't have a GCC 64 bit build environment to test with unfortunately). It also appears that inline ASM accounts for only part of the difference meaning that at least for 32 bit code GCC's compiler optimization must be a little bit
> better (although this is speculation). Some details of the test are at the end of the mail.
>
> Regards,
>
> Joe
>
> -- TEST DETAILS --
>
> Command:
>
> time x264 --quiet --crf 18 --preset veryslow --level 4.1 --profile high --frames
> 150 -o NUL
> /home/Joseph/test.y4m
>
> (test.y4m is a 720p clip of random TV from over the air ATSC)
>
> Test method:
>
> Looped around the above command 6 times with a 'sleep 60' between each execution of the command. Repeated the test for each version of x264 compiled.
>
> Output (notice there is still
> significant variation so its hard to say how scientific this test was; should probably do this with a longer input clip or on a better machine than this old testing laptop):
>
> ** 32 bit with GCC (including inline ASM) **
>
> encoded 150 frames, 1.46 fps, 2952.85 kb/s
> real 1m42.707s
> user 0m0.000s
> sys 0m0.015s
> encoded 150 frames, 1.42 fps, 2952.85 kb/s
> real 1m45.994s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.36 fps, 2952.85 kb/s
> real 1m50.116s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.40 fps, 2952.85 kb/s
> real 1m47.493s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.35 fps, 2952.85 kb/s
> real 1m51.659s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.31 fps, 2952.85 kb/s
> real 1m54.210s
> user
> 0m0.000s
> sys 0m0.031s
>
> ** 32 bit with GCC and HAVE_X86_INLINE_ASM set to 0 **
>
> encoded 150 frames, 1.34 fps, 2952.85 kb/s
> real 1m52.023s
> user
> 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.31 fps, 2952.85 kb/s
> real 1m54.835s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.32 fps, 2952.85 kb/s
> real 1m53.376s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.36 fps, 2952.85 kb/s
> real 1m50.509s
> user 0m0.031s
> sys 0m0.000s
> encoded 150 frames, 1.34 fps, 2952.85 kb/s
> real 1m51.988s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.35 fps, 2952.85 kb/s
> real 1m51.538s
> user 0m0.015s
> sys 0m0.015s
>
> ** 32 bit with MSVC 2013 Update 1 **
>
> encoded 150 frames, 1.27 fps, 2952.85 kb/s
> real 1m58.251s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.28 fps, 2952.85 kb/s
> real 1m57.180s
> user 0m0.031s
> sys 0m0.000s
> encoded 150 frames, 1.24 fps, 2952.85 kb/s
> real 2m0.990s
> user 0m0.015s
> sys 0m0.031s
> encoded 150 frames, 1.26 fps, 2952.85 kb/s
> real 1m58.976s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.28 fps, 2952.85 kb/s
> real 1m57.800s
> user
> 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.27 fps, 2952.85 kb/s
> real 1m57.864s
> user 0m0.015s
> sys 0m0.015s
>
> ** 32 bit with MSVC 2013 CTP
> **
>
> encoded 150 frames, 1.25 fps, 2952.85 kb/s
> real 1m59.830s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.27 fps, 2952.85 kb/s
> real 1m58.422s
> user 0m0.031s
> sys 0m0.000s
> encoded 150 frames, 1.28 fps, 2952.85 kb/s
> real 1m56.982s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.24 fps, 2952.85 kb/s
> real 2m0.888s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.28 fps, 2952.85 kb/s
> real 1m56.954s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.15 fps, 2952.85 kb/s
> real 2m10.682s
> user 0m0.031s
> sys 0m0.000s
>
> ** 64 bit with MSVC 2013 CTP **
>
> encoded 150 frames, 1.47 fps, 2952.85 kb/s
> real 1m42.445s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.29 fps, 2952.85 kb/s
> real 1m56.321s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.42 fps, 2952.85 kb/s
> real 1m46.091s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.38 fps, 2952.85 kb/s
> real 1m49.038s
> user 0m0.000s
> sys 0m0.031s
> encoded 150 frames, 1.39 fps, 2952.85 kb/s
> real 1m48.337s
> user 0m0.015s
> sys 0m0.015s
> encoded 150 frames, 1.43 fps, 2952.85 kb/s
> real 1m45.342s
> user 0m0.015s
> sys 0m0.015s
> _______________________________________________
> x264-devel mailing list
> x264-devel at videolan.org
> https://mailman.videolan.org/listinfo/x264-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x264-devel/attachments/20140406/250101ed/attachment-0001.html>
More information about the x264-devel
mailing list