From cbc35cbd6e1dda47c4d2ed9e1c03a4901ef5c89a Mon Sep 17 00:00:00 2001 From: Jakob Unterwurzacher Date: Sun, 6 Sep 2015 13:08:48 +0200 Subject: [PATCH] new file: go-vs-openssl.md --- openssl_benchmark/go-vs-openssl.md | 91 ++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 openssl_benchmark/go-vs-openssl.md diff --git a/openssl_benchmark/go-vs-openssl.md b/openssl_benchmark/go-vs-openssl.md new file mode 100644 index 0000000..3c3ec7f --- /dev/null +++ b/openssl_benchmark/go-vs-openssl.md @@ -0,0 +1,91 @@ +Go 1.4.2 +======== + +39MB/s @1k + + go1.4/src/crypto/cipher$ go test -bench=. + + BenchmarkAESGCMSeal1K 50000 25968 ns/op 39.43 MB/s + BenchmarkAESGCMOpen1K 50000 25914 ns/op 39.51 MB/s + [...] + +Go 1.5 +====== + +41MB/s @1k + + go1.5/src/crypto/cipher$ ~/go/src/go1.5/bin/go test -bench=. + + BenchmarkAESGCMSeal1K-2 50000 24429 ns/op 41.92 MB/s + BenchmarkAESGCMOpen1K-2 50000 24578 ns/op 41.66 MB/s + BenchmarkAESGCMSeal8K-2 10000 190340 ns/op 43.04 MB/s + BenchmarkAESGCMOpen8K-2 10000 190308 ns/op 43.05 MB/s + [...] + +openssl 1.0.1k +============== + +302MB/s @1k + + $ openssl speed -elapsed -evp aes-128-gcm + + [...] + The 'numbers' are in 1000s of bytes per second processed. + type 16 bytes 64 bytes 256 bytes 1024 bytes 8192 bytes + aes-128-gcm 71275.15k 80063.19k 275048.36k 302066.69k 308912.13k + + +gocryptfs with openssl bindings +=============================== + +148MB/s @4k + + gocryptfs/openssl_benchmark$ ./openssl_benchmark.bash + + BenchmarkAESGCMSeal4K 20000 98671 ns/op 41.51 MB/s + BenchmarkAESGCMOpen4K 20000 98679 ns/op 41.51 MB/s + BenchmarkOpensslGCMenc4K 50000 27542 ns/op 148.72 MB/s + BenchmarkOpensslGCMdec4K 50000 27564 ns/op 148.60 MB/s + + +CPU Info +======== + +This is tested on a dual-core Intel Sandy Bridge Pentium G630 which does NOT have +aes instructions ( https://en.wikipedia.org/wiki/AES_instruction_set ) + + $ cat /proc/cpuinfo | fold -s -w 80 + + processor : 0 + vendor_id : GenuineIntel + cpu family : 6 + model : 42 + model name : Intel(R) Pentium(R) CPU G630 @ 2.70GHz + stepping : 7 + microcode : 0x29 + cpu MHz : 1617.574 + cache size : 3072 KB + physical id : 0 + siblings : 2 + core id : 0 + cpu cores : 2 + apicid : 0 + initial apicid : 0 + fpu : yes + fpu_exception : yes + cpuid level : 13 + wp : yes + flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov + pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx rdtscp lm + constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc + aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 + xtpr pdcm pcid sse4_1 sse4_2 popcnt tsc_deadline_timer xsave lahf_lm arat epb + pln pts dtherm tpr_shadow vnmi flexpriority ept vpid xsaveopt + bugs : + bogomips : 5387.68 + clflush size : 64 + cache_alignment : 64 + address sizes : 36 bits physical, 48 bits virtual + power management: + + [...]