ApacheBench

 view release on metacpan or  search on metacpan

src/ApacheBench.xs  view on Meta::CPAN


                if (AB_DEBUG_XS) printf("AB_DEBUG: getting regression - stage 3 - i=%d\n", i);
                tmphv = newHV();
                hv_store(tmphv, "max_connect_time", 16, newSVnv(maxcon), 0);
                hv_store(tmphv, "max_request_time", 16, newSVnv(maxreq), 0);
                hv_store(tmphv, "max_response_time", 17, newSVnv(maxtot), 0);
                hv_store(tmphv, "min_connect_time", 16, newSVnv(mincon), 0);
                hv_store(tmphv, "min_request_time", 16, newSVnv(minreq), 0);
                hv_store(tmphv, "min_response_time", 17, newSVnv(mintot), 0);
                if (AB_DEBUG_XS) printf("AB_DEBUG: getting regression - stage 4 - i=%d\n", i);
                hv_store(tmphv, "total_connect_time", 18, newSVnv(totalcon), 0);
                hv_store(tmphv, "total_request_time", 18, newSVnv(totalreq), 0);
                hv_store(tmphv, "total_response_time", 19, newSVnv(total), 0);
                hv_store(tmphv, "average_connect_time", 20, newSVnv((float)totalcon/(j-registry->position[k])), 0);
                hv_store(tmphv, "average_request_time", 20, newSVnv((float)totalreq/(j-registry->position[k])), 0);
                hv_store(tmphv, "average_response_time", 21, newSVnv((double)total/(j-registry->position[k])), 0);
                hv_store(tmphv, "total_bytes_read", 16, newSVnv(total_bytes_read), 0);
                hv_store(tmphv, "total_bytes_posted", 18, newSVnv(total_bytes_posted), 0);
                if (AB_DEBUG_XS) printf("AB_DEBUG: getting regression - stage 5 - i=%d\n", i);

                /* started/good/failed are url-specific, store only 1st time */
                if (i == 0) {
                    hv_store(tmphv, "started", 7, newRV_inc((SV *)started), 0);
                    hv_store(tmphv, "good", 4, newRV_inc((SV *)good), 0);
                    hv_store(tmphv, "failed", 6, newRV_inc((SV *)failed), 0);
                }
                hv_store(tmphv, "connect_time", 12, newRV_inc((SV *)th_c), 0);
                hv_store(tmphv, "request_time", 12, newRV_inc((SV *)th_r), 0);
                hv_store(tmphv, "response_time", 13, newRV_inc((SV *)th_t), 0);
                if (registry->memory[k] >= 2) {
                    hv_store(tmphv, "headers", 7, newRV_inc((SV *)headers), 0);
                    hv_store(tmphv, "doc_length", 10, newRV_inc((SV *)doc_length), 0);
                    hv_store(tmphv, "bytes_read", 10, newRV_inc((SV *)bytes_read), 0);
                    hv_store(tmphv, "bytes_posted", 12, newRV_inc((SV *)bytes_posted), 0);
                    hv_store(tmphv, "request_headers", 15, newRV_inc((SV *)request_headers), 0);
                }
                if (registry->memory[k] >= 3) {
                    hv_store(tmphv, "page_content", 12, newRV_inc((SV *)page_contents), 0);
                    hv_store(tmphv, "request_body", 12, newRV_inc((SV *)request_body), 0);
                }
                if (AB_DEBUG_XS) printf("AB_DEBUG: getting regression - stage 6 - i=%d\n", i);
                av_push(tmpav, newRV_inc((SV*)tmphv));
            }
            {
                char key[10];
                sprintf(key, "run%d", k);
                hv_store(RETVAL, key, strlen(key), newRV_inc((SV *)tmpav), 0);
            }
        }
    }

    hv_store(RETVAL, "warnings", 8, newSVpv(registry->warn_and_error, 0), 0);
    hv_store(RETVAL, "total_time", 10,
             newSVnv(timedif(registry->endtime, registry->starttime)), 0);
    hv_store(RETVAL, "bytes_received", 14,
             newSVnv(registry->total_bytes_received), 0);
    hv_store(RETVAL, "started", 7, newSViv(total_started), 0);
    hv_store(RETVAL, "good", 4, newSViv(total_good), 0);
    hv_store(RETVAL, "failed", 6, newSViv(total_failed), 0);

    OUTPUT:
    RETVAL



( run in 0.804 second using v1.01-cache-2.11-cpan-39bf76dae61 )