Skip to content

Language Implementation Performance Comparison #768

Open
@marcz88

Description

@marcz88

Performance is an important aspect of an encryption library especially when you deal with large datasets.

Ive been doing perf tests of AWS Encryption SDK for different languages and found that the Go implementation is horribly slow.

I’ve run various test with file sizes between 1MB all the way to 5GB. Here is one test result that summarizes what I’m seeing. The test encrypts then decrypts 10 50MB files. I ran the entire test 5 times and took averages.

Language Performance
C = 9 seconds
Python = 14 seconds
Go = 83 seconds

I was shocked that Go performed that poorly given that I have tested the AWS S3 Encryption Client fo Go and it is much faster than a similar test I’ve done using the AWS Encryption SDK and streaming encrypted data to the AWS S3 Client.

I’ve read that the priority is to support more languages which I understand. I was delighted to see that Go was added earlier in the year but really disappointed after doing these tests. Unfortunately we can’t use the Go implementation since it adds 6 to 10 X processing time.

Is there any plan to improve this aspect?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions