# Benchmarking service provider SSO tasks

## “AuthenticationRequest” generation

    lasso_login_init_authn_request(login, "https://idp1/metadata", LASSO_HTTP_METHOD_REDIRECT);
    request = LASSO_LIB_AUTHN_REQUEST(LASSO_PROFILE(login)->request);
    request->IsPassive = 0;
    request->NameIDPolicy = g_strdup(LASSO_LIB_NAMEID_POLICY_TYPE_FEDERATED);
    request->consent = g_strdup(LASSO_LIB_CONSENT_OBTAINED);
    request->ProtocolProfile = g_strdup(LASSO_LIB_PROTOCOL_PROFILE_BRWS_POST);
    lasso_login_build_authn_request_msg(login);

| 100 reqs | 1000 reqs | 10000 reqs
| time | req/s | time | req/s | time | req/s
Intel® Pentium® M processor 1500Mhz | 2.993 | 33.414 | 29.932 | 33.409 | 300.877 | 33.236
AMD Opteron™ Processor 242 (1.6Ghz) | 0.716 | 139.734 | 7.136 | 140.136 | 71.213 | 140.425
Intel® Xeon™ CPU 2.80GHz | 2.785 | 35.909 | 27.94 | 35.785 | 280.440 | 35.658

## “AuthenticationResponse” consuming

    lasso_login_process_authn_response_msg(login, authn_response_msg);
    lasso_login_accept_sso(login);

| 100 reqs | 1000 reqs | 10000 reqs
| time | req/s | time | req/s | time | req/s
Intel® Pentium® M processor 1500Mhz | 0.572 | 174.840 | 5.788 | 172.766 | 58.249 | 171.677
AMD Opteron™ Processor 242 (1.6Ghz) | 0.303 | 329.710 | 3.022 | 330.899 | 30.454 | 328.368
Intel® Xeon™ CPU 2.80GHz | 0.609 | 164.218 | 6.179 | 161.835 | 62.457 | 160.108

Results last updated on January 25th, with Lasso almost 0.6.0. Tests systems were:

1. - Intel® Pentium® M processor 1500Mhz
   - 1Gb RAM
   - Debian GNU/Linux "sid"
     - libxml2 2.6.11
     - XMLSec 1.2.6
     - OpenSSL 0.9.7e
2. - AMD Opteron™ Processor 242 (1.6Ghz)
   - 2Gb RAM
   - Debian GNU/Linux "sarge" (unreleased AMD-64 version)
     - libxml2 2.6.11
     - XMLSec 1.2.6
     - OpenSSL 0.9.7e
3. - Intel® Xeon™ CPU 2.80GHz
   - 512Mb RAM
   - Debian GNU/Linux "sarge"
     - libxml2 2.6.11
     - XMLSec 1.2.6
     - OpenSSL 0.9.7d

## Library Usage

Calculated with valgrind on test system #1 with 30 iterations; this shows most time in those tests is spent in OpenSSL.

## Performance Stability

Performance doesn't degrade when increasing the number of requests.