[gnutls-dev] optimization issues

Nikos Mavroyanopoulos nmav@gnutls.org
Fri Mar 29 13:34:01 2002


 After two days of optimization in RSA and in the handshake procedure it
seems gnutls' performance was dramatically increased. It is now comparable[0]
to the speed of openssl[1]. The gnutls function graph, of a non blocking 
server is below.

[0]. In the last test with the non blocking server, we were about 5% 
slower.

[1]. The comparison against openssl, just because it is the only available
free tls implementation (and it is really optimized).



Total time spend in this processus is 352.675496
602 arc(s), 300 function(s) (300 shown, 0 hidden), 6 library(ies)


     total   |     local   |     total     |     local     |   #   |function
 time  |  %  | time  |  %  |  min  |  max  |  min  |  max  | calls |  name
-------|-----|-------|-----|-------|-------|-------|-------|-------|--------
 156.80| 44.5| 139.44| 39.5|   0.05|   0.63|   0.05|   0.61|   2537| _gnutls_pk_decrypt
  28.29|  8.0|  28.29|  8.0|   0.00|   0.18|   0.00|   0.18|  17750| _gnutls_io_write_buffered
  37.45| 10.6|  21.67|  6.1|   0.00|   0.21|   0.00|   0.21| 618834| gnutls_free
  14.32|  4.1|  10.84|  3.1|   0.00|   0.11|   0.00|   0.11|  98899| gnutls_hash_init
   8.45|  2.4|   8.45|  2.4|   0.00|   0.09|   0.00|   0.09| 601737| gnutls_malloc
  25.94|  7.4|   8.13|  2.3|   0.00|   0.10|   0.00|   0.10|  91284| gnutls_hash_deinit
   7.31|  2.1|   7.31|  2.1|   0.00|   0.09|   0.00|   0.09| 606150| _gnutls_free
   7.26|  2.1|   7.26|  2.1|   0.00|   0.10|   0.00|   0.10| 623931| _gnutls_is_secure_memory
   6.63|  1.9|   6.63|  1.9|   0.00|   0.05|   0.00|   0.05| 261186| gnutls_hash
   8.74|  2.5|   4.38|  1.2|   0.00|   0.12|   0.00|   0.12|   2537| _gnutls_supported_ciphersuites
   4.79|  1.4|   4.34|  1.2|   0.00|   0.05|   0.00|   0.05|   5074| _gnutls_get_random
  18.09|  5.1|   4.12|  1.2|   0.00|   0.10|   0.00|   0.02|  17750| _gnutls_compressed2TLSCiphertext
  31.46|  8.9|   3.60|  1.0|   0.00|   0.10|   0.00|   0.08|  30422| gnutls_recv_int
   3.52|  1.0|   3.44|  1.0|   0.00|   0.01|   0.00|   0.01|  32953| _gnutls_read
  54.71| 15.5|   2.85|  0.8|   0.00|   0.18|   0.00|   0.02|  17750| gnutls_send_int
  12.02|  3.4|   2.73|  0.8|   0.00|   0.05|   0.00|   0.05|  12681| _gnutls_ciphertext2TLSCompressed
  26.09|  7.4|   2.63|  0.7|   0.00|   0.16|   0.00|   0.16|  20288| ssl3_md5
   2.63|  0.7|   2.59|  0.7|   0.00|   0.05|   0.00|   0.05|   2537| _gnutls_retrieve_session
   2.16|  0.6|   2.16|  0.6|   0.00|   0.02|   0.00|   0.02| 111572| gnutls_hash_get_algo_len
  13.16|  3.7|   2.12|  0.6|   0.00|   0.10|   0.00|   0.02|  20288| ssl3_sha
  10.75|  3.0|   1.92|  0.5|   0.00|   0.10|   0.00|   0.09|  10144| gnutls_mac_deinit_ssl3_handshake
   4.19|  1.2|   1.91|  0.5|   0.00|   0.10|   0.00|   0.10|  50705| gnutls_secure_free
  12.46|  3.5|   1.79|  0.5|   0.00|   0.10|   0.00|   0.02|  12674| gnutls_mac_deinit_ssl3
   4.39|  1.2|   1.77|  0.5|   0.00|   0.05|   0.00|   0.04|   2537| _gnutls_server_restore_session
 352.66|100.0|   1.65|  0.5| 352.66| 352.66|   1.65|   1.65|      1| main


-- 
Nikos Mavroyanopoulos
mailto:nmav@gnutls.org