Performance, scalability and network optimizations

Performance results of Plastic SCM

How does Plastic compare to other version control systems in pure speed?

We frequently benchmark Plastic against other key version control systems in key operations such as add, checkin, add + checkin (adding the entire codebase to the version control) and update (downloading the entire codebase to a clean directory).
We’ve compared Plastic SCM v 8.0, Git version 2.20.1.windows.1 and a Perforce (Helix) version 2018.2. We’ve done so with 2 types of codebases: small and medium.

SMALL - 63,105 files 4,212 directories - 775 MB
The code for the SMALL repo is the Linux kernel

Plastic is 8 times faster than Perforce Helix Core doing add + checkin

Plastic is 5.7 times faster than Git consider that Git is checking in locally while Plastic is sending data through the network from client to server

MEDIUM - 182,749 files 14,852 directories - 7.16GB
The code for the MEDIUM repo is created as follows: linux + mono + openoffice + alienarena + war.dat

Plastic is 5.2 times faster than Perforce Helix Core doing add + checkin

Plastic is 5.3 times faster than Git consider that Git is checking in locally while Plastic is sending data through the network from client to server.

Hardware configuration:

  • Hardware setup

    CPU: 4 vCPUs, (x64) / Intel(R) Xeon(R) CPU E5-26700 @ 2.60GHz

    RAM: 15 GB

    Network: 1.3Gbps

    OS: Windows Server 2012

  • Disk IO:

    Read speed: 325MB/sec (HDTune)

    Write speed: 195Mb/s (cm iostats)

Software configuration:

  • Plastic SCM is configured for concurrency as follows:

    DownloadPoolSize = 3

    UploadCompressionSize = 3

    UploadReadPoolSize = 3

    Upload_SendDataThreadCount = 3

  • Perforce Helix Core is configured for concurrency as follows:

    --parallel=threads=3 for submit (checkin) and sync (update).

  • Git does not allow concurrency configuration