V1 performance

Hi!

Could someone run a primitive benchmark? Like ‘7z b’ or so?

Sure. I’d just done a fresh Fedora re-installation. A serial console was used. No network connection was available and the system was at runlevel S.

I didn’t (and won’t) download and bench from source comparing gcc vs. llvm and custom kernals, compare compiler flags, and all that. Gotta leave that for Phoronix. :slight_smile:

Since I was working in another window and didn’t (still don’t) know much about 7z, I assumed it was single threaded and decided to fire off a second copy to saturate both cores. HUGE misunderstanding. :slight_smile:

7z b > /tmp/1

7z b &
7z b &
wait
)  > /tmp/2

I understand now that a single 7z will use as many cores as it can find and as much RAM as it thinks is available - eek! - so the second was surely context swiitching itself silly with 4 cores instead of 2 and very likely running large numbers of data (and maybe text) fetches and stores to backing swap or un-dirtyable store. As a sysop, one would work hard to avoid either case, so running out of both CPU and RAM at the same time is more of an OS stress test than it is a benchmark of the app itself.

A single copy clocks in at 3 wall-minutes:

real    2m56.025s
user    5m12.792s
sys     0m6.797s

Comparing the timestamps on /tmp/1 and /tmp/2, we see that running it twice at the same time takes 8 minutes. This seems expected as they’re essentially running serially and with the penalty of paging/swapping. Don’t do that.

/tmp/1: 
7-Zip 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs LE)

LE
CPU Freq: 32000000 64000000 64000000 64000000 - 256000000 512000000 1024000000 2048000000

RAM size:    7174 MB,  # CPU hardware threads:   2
RAM usage:    441 MB,  # Benchmark threads:      2

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:        781   165    462    760  |      19372   200    828   1654
23:        765   169    462    780  |      19133   199    832   1656
24:        744   169    473    801  |      18639   198    825   1636
25:        744   174    487    850  |      18276   199    817   1627
----------------------------------  | ------------------------------
Avr:             169    471    798  |              199    825   1643
Tot:             184    648   1221 

cat /tmp/2
7-Zip 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs LE)

LE
CPU Freq: 64000000 - - 64000090 128000000 256000000 - - 2048000000

RAM size:    7174 MB,  # CPU hardware threads:   2
RAM usage:    441 MB,  # Benchmark threads:      2

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:        453   100    442    441  |       9792   101    824    836
23:        405    95    436    413  |       9492   101    818    822
24:        417   101    444    449  |       9271   100    811    814
25:        398   100    457    455  |       9143   101    804    814
----------------------------------  | ------------------------------
Avr:              99    445    439  |              101    814    821
Tot:             100    629    630

7-Zip 16.02 : Copyright (c) 1999-2016 Igor Pavlov : 2016-05-21
p7zip Version 16.02 (locale=en_US.UTF-8,Utf16=on,HugeFiles=on,64 bits,2 CPUs LE)

LE
CPU Freq: 64000000 64000000 64000000 - - - 512000000 1024000000 2048000000

RAM size:    7174 MB,  # CPU hardware threads:   2
RAM usage:    441 MB,  # Benchmark threads:      2

                       Compressing  |                  Decompressing
Dict     Speed Usage    R/U Rating  |      Speed Usage    R/U Rating
         KiB/s     %   MIPS   MIPS  |      KiB/s     %   MIPS   MIPS

22:        413    92    438    403  |       9789   101    828    836
23:        421    99    434    429  |       9552   100    824    827
24:        409    99    444    440  |       9402   102    811    825
25:        389    98    455    445  |       9799   108    806    872
----------------------------------  | ------------------------------
Avr:              97    443    429  |              103    817    840
Tot:             100    630    635

Two parallel copies doesn’t destroy the system, but it does result in poorer behaviour than letting the app decide on its own how deep and wide it should run.

Oh, thank you so much.