1e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project/* 2e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** Copyright 2008 The Android Open Source Project 3e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** 4e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** Licensed under the Apache License, Version 2.0 (the "License"); 5e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** you may not use this file except in compliance with the License. 6e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** You may obtain a copy of the License at 7e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** 8e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** http://www.apache.org/licenses/LICENSE-2.0 9e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** 10e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** Unless required by applicable law or agreed to in writing, software 11e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** distributed under the License is distributed on an "AS IS" BASIS, 12e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** See the License for the specific language governing permissions and 14e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project** limitations under the License. 15e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project*/ 16e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 17e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project#include <stdlib.h> 18e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project#include <stdio.h> 19e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project#include <errno.h> 20e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project#include <sys/uio.h> 21e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project#include <unistd.h> 22e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 23e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Projectint main(int argc, char **argv) { 24e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project int i; 25e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 26e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project struct timeval tv1; 27e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project struct timeval tv2; 28e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project long max = 0; 29e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project long avg = 0; 30e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 31e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project for(i = 1; ; i++) { 32e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project gettimeofday(&tv1, NULL); 33e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project usleep(1000); 34e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project gettimeofday(&tv2, NULL); 35e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 36e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project long usec = (tv2.tv_sec - tv1.tv_sec) * 1000000 + tv2.tv_usec - tv1.tv_usec; 37e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project avg += usec; 38e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project 39e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project if (usec > max) max = usec; 40e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project if (!(i % 1000)) { 41e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project avg /= 1000; 42e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project printf("max %ld\tavg %ld\n", max, avg); 43e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project max = 0; 44e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project avg = 0; 45e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project } 46e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project } 47e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project return 0; 48e16cb84e2324f05334d18dcf5956f20f44262b62The Android Open Source Project} 49