Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Language Implementation Performance Comparison #768

Open
marcz88 opened this issue Mar 19, 2025 · 1 comment
Open

Language Implementation Performance Comparison #768

marcz88 opened this issue Mar 19, 2025 · 1 comment

Comments

@marcz88
Copy link

marcz88 commented Mar 19, 2025

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?

@ajewellamz
Copy link
Contributor

Greetings marcz88,

Yes, we are actively working on the performance of aws-encryption-sdk, for all of the target languages generally and for Go specifically.
I cannot make any specific statements about the final performance numbers, nor release dates, but our performance efforts so far have shown positive results.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants