mkv

compression comparison

mkv
Jul 7th, 2018
238
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 13.27 KB | None | 0 0
  1. #!/bin/bash
  2. set -e
  3.  
  4. ##
  5. ##  scroll down to end of file for test results
  6. ##  measured on i5-6300HQ, 4 cores, 4 threads
  7. ##  ( with some cpu load from chrome etc )
  8. ##
  9.  
  10. infile=/dev/shm/usr-lib.tar
  11.  
  12. tests=(
  13.     "pigz -c -0" \
  14.     "pigz -c -1" \
  15.     "pigz -c -2" \
  16.     "pigz -c -3" \
  17.     "pigz -c -4" \
  18.     "pigz -c -5" \
  19.     "pigz -c -6" \
  20.     "pigz -c -7" \
  21.     "pigz -c -8" \
  22.     "pigz -c -9" \
  23.     "pigz -c -9 -b 32" \
  24.     "pigz -c -9 -b 64" \
  25.     "pigz -c -9 -b 256" \
  26.     "pigz -c -9 -b 512" \
  27.     "pigz -c -9 -b 1024" \
  28.     "lbzip2 -c -1" \
  29.     "lbzip2 -c -2" \
  30.     "lbzip2 -c -3" \
  31.     "lbzip2 -c -4" \
  32.     "lbzip2 -c -5" \
  33.     "lbzip2 -c -6" \
  34.     "lbzip2 -c -7" \
  35.     "lbzip2 -c -8" \
  36.     "lbzip2 -c -9" \
  37.     "lbzip2 -c -9 -s" \
  38.     "lbzip2 -c -9 -u" \
  39.     "xz -z -c -0 -T 0" \
  40.     "xz -z -c -1 -T 0" \
  41.     "xz -z -c -2 -T 0" \
  42.     "xz -z -c -3 -T 0" \
  43.     "xz -z -c -4 -T 0" \
  44.     "xz -z -c -5 -T 0" \
  45.     "xz -z -c -6 -T 0" \
  46.     "xz -z -c -7 -T 0" \
  47.     "xz -z -c -8 -T 0" \
  48.     "xz -z -c -9 -T 0" \
  49.     "xz -z -c -0 -T 0 -e" \
  50.     "xz -z -c -1 -T 0 -e" \
  51.     "xz -z -c -2 -T 0 -e" \
  52.     "xz -z -c -3 -T 0 -e" \
  53.     "xz -z -c -4 -T 0 -e" \
  54.     "xz -z -c -5 -T 0 -e" \
  55.     "xz -z -c -6 -T 0 -e" \
  56.     "xz -z -c -7 -T 0 -e" \
  57.     "xz -z -c -8 -T 0 -e" \
  58.     "xz -z -c -9 -T 0 -e"
  59. )
  60.  
  61. paratests=(
  62.     "xz -z -c -0" \
  63.     "xz -z -c -1" \
  64.     "xz -z -c -2" \
  65.     "xz -z -c -3" \
  66.     "xz -z -c -4" \
  67.     "xz -z -c -5" \
  68.     "xz -z -c -6" \
  69.     "xz -z -c -7" \
  70.     "xz -z -c -8" \
  71.     "xz -z -c -9" \
  72.     "xz -z -c -0 -e" \
  73.     "xz -z -c -1 -e" \
  74.     "xz -z -c -2 -e" \
  75.     "xz -z -c -3 -e" \
  76.     "xz -z -c -4 -e" \
  77.     "xz -z -c -5 -e" \
  78.     "xz -z -c -6 -e" \
  79.     "xz -z -c -7 -e" \
  80.     "xz -z -c -8 -e" \
  81.     "xz -z -c -9 -e"
  82. )
  83.  
  84. printf '%10s bytes in %s\n' \
  85.     "$(stat -c%s $infile)" \
  86.     "$infile"
  87.  
  88. for args in "${tests[@]}"
  89. do
  90.     t1=$(date +%s%N)
  91.     sz=$($args < $infile | wc -c)
  92.     t2=$(date +%s%N)
  93.     td=$(
  94.         printf '%s\n' $((t2-t1)) |
  95.         sed -r 's/(.{3}).{6}$/.\1/'
  96.     )
  97.     printf '%10s bytes in %7s seconds using %s\n' $sz $td "$args"
  98. done
  99.  
  100. cores=4
  101. used=0
  102. for args in "${paratests[@]}"
  103. do
  104.     used=$((used+1))
  105.    
  106.     (( used > cores )) &&
  107.     {
  108.         wait
  109.         used=1
  110.     }
  111.    
  112.     # forked worker
  113.     {
  114.         t1=$(date +%s%N)
  115.         sz=$($args < $infile | wc -c)
  116.         t2=$(date +%s%N)
  117.         td=$(
  118.             printf '%s\n' $((t2-t1)) |
  119.             sed -r 's/(.{3}).{6}$/.\1/'
  120.         )
  121.         printf '%10s bytes in %7s seconds using %s\n' $sz $td "$args"
  122.     } &
  123. done
  124. wait
  125.  
  126. exit 0
  127.  
  128.  
  129.  
  130. 1505812480 bytes in /dev/shm/usr-lib.tar
  131. 1505984823 bytes in   1.969 seconds using pigz -c -0
  132.  570615116 bytes in   7.415 seconds using pigz -c -1
  133.  559151803 bytes in   7.502 seconds using pigz -c -2
  134.  549957640 bytes in   9.310 seconds using pigz -c -3
  135.  537060988 bytes in   9.703 seconds using pigz -c -4
  136.  526524677 bytes in  12.712 seconds using pigz -c -5
  137.  521648443 bytes in  18.680 seconds using pigz -c -6
  138.  520409025 bytes in  23.048 seconds using pigz -c -7
  139.  518994457 bytes in  46.394 seconds using pigz -c -8
  140.  518574325 bytes in  75.735 seconds using pigz -c -9
  141.  517163600 bytes in  81.157 seconds using pigz -c -9 -b 32
  142.  518170569 bytes in  75.898 seconds using pigz -c -9 -b 64
  143.  518574325 bytes in  75.157 seconds using pigz -c -9 -b 128
  144.  518699699 bytes in  77.513 seconds using pigz -c -9 -b 256
  145.  518766300 bytes in  76.649 seconds using pigz -c -9 -b 512
  146.  518818092 bytes in  75.173 seconds using pigz -c -9 -b 1024
  147.  505057829 bytes in  29.661 seconds using lbzip2 -c -1
  148.  493208559 bytes in  27.124 seconds using lbzip2 -c -2
  149.  488042181 bytes in  26.147 seconds using lbzip2 -c -3
  150.  484855922 bytes in  25.937 seconds using lbzip2 -c -4
  151.  482714163 bytes in  25.855 seconds using lbzip2 -c -5
  152.  480663960 bytes in  26.019 seconds using lbzip2 -c -6
  153.  479345986 bytes in  26.087 seconds using lbzip2 -c -7
  154.  478339629 bytes in  26.459 seconds using lbzip2 -c -8
  155.  477214680 bytes in  28.517 seconds using lbzip2 -c -9
  156.  477214680 bytes in  26.333 seconds using lbzip2 -c -9 -s
  157.  476277924 bytes in  26.375 seconds using lbzip2 -c -9 -u
  158.  444967732 bytes in  29.076 seconds using xz -z -c -0 -T 0
  159.  419181364 bytes in  45.030 seconds using xz -z -c -1 -T 0
  160.  408102088 bytes in  74.835 seconds using xz -z -c -2 -T 0
  161.  400795800 bytes in 104.774 seconds using xz -z -c -3 -T 0
  162.  384321280 bytes in 130.551 seconds using xz -z -c -4 -T 0
  163.  368988288 bytes in 183.542 seconds using xz -z -c -5 -T 0
  164.  367034284 bytes in 209.514 seconds using xz -z -c -6 -T 0
  165.  359465936 bytes in 223.646 seconds using xz -z -c -7 -T 0
  166.  355302128 bytes in 238.301 seconds using xz -z -c -8 -T 0
  167.  408136360 bytes in 149.856 seconds using xz -z -c -0 -T 0 -e
  168.  389491264 bytes in 168.247 seconds using xz -z -c -1 -T 0 -e
  169.  381135596 bytes in 178.825 seconds using xz -z -c -2 -T 0 -e
  170.  373894068 bytes in 179.325 seconds using xz -z -c -3 -T 0 -e
  171.  374142148 bytes in 179.662 seconds using xz -z -c -4 -T 0 -e
  172.  366809628 bytes in 182.341 seconds using xz -z -c -5 -T 0 -e
  173.  366947768 bytes in 192.392 seconds using xz -z -c -6 -T 0 -e
  174.  359222592 bytes in 208.451 seconds using xz -z -c -7 -T 0 -e
  175.  355054912 bytes in 239.716 seconds using xz -z -c -8 -T 0 -e
  176.  440812956 bytes in 138.224 seconds using xz -z -c -0
  177.  414591336 bytes in 167.587 seconds using xz -z -c -1
  178.  404333924 bytes in 209.236 seconds using xz -z -c -2
  179.  397590264 bytes in 259.024 seconds using xz -z -c -3
  180.  380756200 bytes in 459.342 seconds using xz -z -c -4
  181.  365909072 bytes in 587.287 seconds using xz -z -c -5
  182.  363897956 bytes in 650.989 seconds using xz -z -c -6
  183.  356567660 bytes in 673.724 seconds using xz -z -c -7
  184.  352942048 bytes in 682.302 seconds using xz -z -c -8
  185.  403088120 bytes in 617.040 seconds using xz -z -c -0 -e
  186.  384136200 bytes in 669.630 seconds using xz -z -c -1 -e
  187.  376549732 bytes in 695.215 seconds using xz -z -c -2 -e
  188.  369914736 bytes in 706.825 seconds using xz -z -c -3 -e
  189.  370125100 bytes in 740.674 seconds using xz -z -c -4 -e
  190.  363587780 bytes in 732.890 seconds using xz -z -c -5 -e
  191.  363778076 bytes in 767.257 seconds using xz -z -c -6 -e
  192.  356411268 bytes in 734.169 seconds using xz -z -c -7 -e
  193.  352687584 bytes in 764.315 seconds using xz -z -c -8 -e
  194.  
  195. # sorted by file size:
  196. # grep -E '^ *[0-9]+ bytes' pigz-test.sh | sort -nk 1
  197.  352687584 bytes in 764.315 seconds using xz -z -c -8 -e
  198.  352942048 bytes in 682.302 seconds using xz -z -c -8
  199.  355054912 bytes in 239.716 seconds using xz -z -c -8 -T 0 -e
  200.  355302128 bytes in 238.301 seconds using xz -z -c -8 -T 0
  201.  356411268 bytes in 734.169 seconds using xz -z -c -7 -e
  202.  356567660 bytes in 673.724 seconds using xz -z -c -7
  203.  359222592 bytes in 208.451 seconds using xz -z -c -7 -T 0 -e
  204.  359465936 bytes in 223.646 seconds using xz -z -c -7 -T 0
  205.  363587780 bytes in 732.890 seconds using xz -z -c -5 -e
  206.  363778076 bytes in 767.257 seconds using xz -z -c -6 -e
  207.  363897956 bytes in 650.989 seconds using xz -z -c -6
  208.  365909072 bytes in 587.287 seconds using xz -z -c -5
  209.  366809628 bytes in 182.341 seconds using xz -z -c -5 -T 0 -e
  210.  366947768 bytes in 192.392 seconds using xz -z -c -6 -T 0 -e
  211.  367034284 bytes in 209.514 seconds using xz -z -c -6 -T 0
  212.  368988288 bytes in 183.542 seconds using xz -z -c -5 -T 0
  213.  369914736 bytes in 706.825 seconds using xz -z -c -3 -e
  214.  370125100 bytes in 740.674 seconds using xz -z -c -4 -e
  215.  373894068 bytes in 179.325 seconds using xz -z -c -3 -T 0 -e
  216.  374142148 bytes in 179.662 seconds using xz -z -c -4 -T 0 -e
  217.  376549732 bytes in 695.215 seconds using xz -z -c -2 -e
  218.  380756200 bytes in 459.342 seconds using xz -z -c -4
  219.  381135596 bytes in 178.825 seconds using xz -z -c -2 -T 0 -e
  220.  384136200 bytes in 669.630 seconds using xz -z -c -1 -e
  221.  384321280 bytes in 130.551 seconds using xz -z -c -4 -T 0
  222.  389491264 bytes in 168.247 seconds using xz -z -c -1 -T 0 -e
  223.  397590264 bytes in 259.024 seconds using xz -z -c -3
  224.  400795800 bytes in 104.774 seconds using xz -z -c -3 -T 0
  225.  403088120 bytes in 617.040 seconds using xz -z -c -0 -e
  226.  404333924 bytes in 209.236 seconds using xz -z -c -2
  227.  408102088 bytes in  74.835 seconds using xz -z -c -2 -T 0
  228.  408136360 bytes in 149.856 seconds using xz -z -c -0 -T 0 -e
  229.  414591336 bytes in 167.587 seconds using xz -z -c -1
  230.  419181364 bytes in  45.030 seconds using xz -z -c -1 -T 0
  231.  440812956 bytes in 138.224 seconds using xz -z -c -0
  232.  444967732 bytes in  29.076 seconds using xz -z -c -0 -T 0
  233.  476277924 bytes in  26.375 seconds using lbzip2 -c -9 -u
  234.  477214680 bytes in  26.333 seconds using lbzip2 -c -9 -s
  235.  477214680 bytes in  28.517 seconds using lbzip2 -c -9
  236.  478339629 bytes in  26.459 seconds using lbzip2 -c -8
  237.  479345986 bytes in  26.087 seconds using lbzip2 -c -7
  238.  480663960 bytes in  26.019 seconds using lbzip2 -c -6
  239.  482714163 bytes in  25.855 seconds using lbzip2 -c -5
  240.  484855922 bytes in  25.937 seconds using lbzip2 -c -4
  241.  488042181 bytes in  26.147 seconds using lbzip2 -c -3
  242.  493208559 bytes in  27.124 seconds using lbzip2 -c -2
  243.  505057829 bytes in  29.661 seconds using lbzip2 -c -1
  244.  517163600 bytes in  81.157 seconds using pigz -c -9 -b 32
  245.  518170569 bytes in  75.898 seconds using pigz -c -9 -b 64
  246.  518574325 bytes in  75.157 seconds using pigz -c -9 -b 128
  247.  518574325 bytes in  75.735 seconds using pigz -c -9
  248.  518699699 bytes in  77.513 seconds using pigz -c -9 -b 256
  249.  518766300 bytes in  76.649 seconds using pigz -c -9 -b 512
  250.  518818092 bytes in  75.173 seconds using pigz -c -9 -b 1024
  251.  518994457 bytes in  46.394 seconds using pigz -c -8
  252.  520409025 bytes in  23.048 seconds using pigz -c -7
  253.  521648443 bytes in  18.680 seconds using pigz -c -6
  254.  526524677 bytes in  12.712 seconds using pigz -c -5
  255.  537060988 bytes in   9.703 seconds using pigz -c -4
  256.  549957640 bytes in   9.310 seconds using pigz -c -3
  257.  559151803 bytes in   7.502 seconds using pigz -c -2
  258.  570615116 bytes in   7.415 seconds using pigz -c -1
  259. 1505812480 bytes in /dev/shm/usr-lib.tar
  260. 1505984823 bytes in   1.969 seconds using pigz -c -0
  261.  
  262. # sorted by processing time:
  263. # grep -E '^ *[0-9]+ bytes' pigz-test.sh | sort -nk 4 | uniq
  264. 1505812480 bytes in /dev/shm/usr-lib.tar
  265. 1505984823 bytes in   1.969 seconds using pigz -c -0
  266.  570615116 bytes in   7.415 seconds using pigz -c -1
  267.  559151803 bytes in   7.502 seconds using pigz -c -2
  268.  549957640 bytes in   9.310 seconds using pigz -c -3
  269.  537060988 bytes in   9.703 seconds using pigz -c -4
  270.  526524677 bytes in  12.712 seconds using pigz -c -5
  271.  521648443 bytes in  18.680 seconds using pigz -c -6
  272.  520409025 bytes in  23.048 seconds using pigz -c -7
  273.  482714163 bytes in  25.855 seconds using lbzip2 -c -5
  274.  484855922 bytes in  25.937 seconds using lbzip2 -c -4
  275.  480663960 bytes in  26.019 seconds using lbzip2 -c -6
  276.  479345986 bytes in  26.087 seconds using lbzip2 -c -7
  277.  488042181 bytes in  26.147 seconds using lbzip2 -c -3
  278.  477214680 bytes in  26.333 seconds using lbzip2 -c -9 -s
  279.  476277924 bytes in  26.375 seconds using lbzip2 -c -9 -u
  280.  478339629 bytes in  26.459 seconds using lbzip2 -c -8
  281.  493208559 bytes in  27.124 seconds using lbzip2 -c -2
  282.  477214680 bytes in  28.517 seconds using lbzip2 -c -9
  283.  444967732 bytes in  29.076 seconds using xz -z -c -0 -T 0
  284.  505057829 bytes in  29.661 seconds using lbzip2 -c -1
  285.  419181364 bytes in  45.030 seconds using xz -z -c -1 -T 0
  286.  518994457 bytes in  46.394 seconds using pigz -c -8
  287.  408102088 bytes in  74.835 seconds using xz -z -c -2 -T 0
  288.  518574325 bytes in  75.157 seconds using pigz -c -9 -b 128
  289.  518818092 bytes in  75.173 seconds using pigz -c -9 -b 1024
  290.  518574325 bytes in  75.735 seconds using pigz -c -9
  291.  518170569 bytes in  75.898 seconds using pigz -c -9 -b 64
  292.  518766300 bytes in  76.649 seconds using pigz -c -9 -b 512
  293.  518699699 bytes in  77.513 seconds using pigz -c -9 -b 256
  294.  517163600 bytes in  81.157 seconds using pigz -c -9 -b 32
  295.  400795800 bytes in 104.774 seconds using xz -z -c -3 -T 0
  296.  384321280 bytes in 130.551 seconds using xz -z -c -4 -T 0
  297.  440812956 bytes in 138.224 seconds using xz -z -c -0
  298.  408136360 bytes in 149.856 seconds using xz -z -c -0 -T 0 -e
  299.  414591336 bytes in 167.587 seconds using xz -z -c -1
  300.  389491264 bytes in 168.247 seconds using xz -z -c -1 -T 0 -e
  301.  381135596 bytes in 178.825 seconds using xz -z -c -2 -T 0 -e
  302.  373894068 bytes in 179.325 seconds using xz -z -c -3 -T 0 -e
  303.  374142148 bytes in 179.662 seconds using xz -z -c -4 -T 0 -e
  304.  366809628 bytes in 182.341 seconds using xz -z -c -5 -T 0 -e
  305.  368988288 bytes in 183.542 seconds using xz -z -c -5 -T 0
  306.  366947768 bytes in 192.392 seconds using xz -z -c -6 -T 0 -e
  307.  359222592 bytes in 208.451 seconds using xz -z -c -7 -T 0 -e
  308.  404333924 bytes in 209.236 seconds using xz -z -c -2
  309.  367034284 bytes in 209.514 seconds using xz -z -c -6 -T 0
  310.  359465936 bytes in 223.646 seconds using xz -z -c -7 -T 0
  311.  355302128 bytes in 238.301 seconds using xz -z -c -8 -T 0
  312.  355054912 bytes in 239.716 seconds using xz -z -c -8 -T 0 -e
  313.  397590264 bytes in 259.024 seconds using xz -z -c -3
  314.  380756200 bytes in 459.342 seconds using xz -z -c -4
  315.  365909072 bytes in 587.287 seconds using xz -z -c -5
  316.  403088120 bytes in 617.040 seconds using xz -z -c -0 -e
  317.  363897956 bytes in 650.989 seconds using xz -z -c -6
  318.  384136200 bytes in 669.630 seconds using xz -z -c -1 -e
  319.  356567660 bytes in 673.724 seconds using xz -z -c -7
  320.  352942048 bytes in 682.302 seconds using xz -z -c -8
  321.  376549732 bytes in 695.215 seconds using xz -z -c -2 -e
  322.  369914736 bytes in 706.825 seconds using xz -z -c -3 -e
  323.  363587780 bytes in 732.890 seconds using xz -z -c -5 -e
  324.  356411268 bytes in 734.169 seconds using xz -z -c -7 -e
  325.  370125100 bytes in 740.674 seconds using xz -z -c -4 -e
  326.  352687584 bytes in 764.315 seconds using xz -z -c -8 -e
  327.  363778076 bytes in 767.257 seconds using xz -z -c -6 -e
Advertisement
Add Comment
Please, Sign In to add comment