Starting My Project

The project requirements are to find an open source package related to compression or hashing. Then to benchmark and optimize a part of the package for aarch64 systems.

I have chosen to investigate the snappy package. This compression library is created by google to be fast and robust,and is used to compress large amounts of data in googles datacenter. It is also used in open source database projects such as mongoDB More Info

Snappy comes with a built in test and benchmarking system.
So I ran these tests on a x86_64 system and a aarch64 system

Here are the x86_64 results:

And here are the aarch64 results:

The first thing I need to do it look into the build system to investigate the warnings about assertions and compiler optimizations. Once compiled in a better way I will rerun the tests on both platforms. I will profile the code looking at the biggest performance differences between x86_64 and aarch64. I will also look at what the x86_64 optimizations are and what the most beneficial aarch64 optimizations would be.

Initial profiling results show some potential candidates for optimization. In this case the EmitCopy and pair functions could be a good candidates.
x86_64:

aarch64: