示例#1
0
文件: main.c 项目: eudisd/schoolwork
int main(void){

	// Unoptimized versions 
	diff = getdiff(iter);
    printf("Unoptimized iter() function call time: \n%0.10f secs\n", diff);
    diff = getdiff(ptr);
    printf("Unoptimized ptr() function call time: \n%0.10f secs\n", diff);

    // Optimized versions of these functinos 
    
    diff = getdiff(opt_iter);
    printf("Optimized opt_iter() function call time: \n%0.10f secs\n", diff);
    diff = getdiff(opt_ptr);
    printf("Optimized opt_ptr() function call time: \n%0.10f secs\n", diff);
    
    return 0;
}
示例#2
0
 gresser(){
   function<diffv(const storage::storage_base*)> getdiff(&gresser::get_diff);
   function<int(const storage::storage_base*, const diffv&, diffv&)> reduce(&gresser::reduce);
   function<int(storage::storage_base*, const diffv&)> putdiff(&gresser::put_diff);
   set_mixer(getdiff, reduce, putdiff);
 }
示例#3
0
int main(int argc, char **argv)
{
	timespec ts1, ts2, diff;
	struct sockaddr_rc addr = { 0 };
	int s, status;
	char dest[18] = "00:06:66:4B:45:7A";

	// allocate a socket
	s = socket(AF_BLUETOOTH, SOCK_STREAM, BTPROTO_RFCOMM);

	// set the connection parameters (who to connect to)
	addr.rc_family = AF_BLUETOOTH;
	addr.rc_channel = (uint8_t) 1;
	str2ba( dest, &addr.rc_bdaddr );

	// connect to server
	status = connect(s, (struct sockaddr *)&addr, sizeof(addr));
	if (status == -1) {
		perror("connect");
		return 1;
	}

	const size_t measures = 100;
	size_t outbuf_len;
	unsigned i;
	double timearray[measures];
	for (i=0; i < measures; i++) {
		outbuf_len = sprintf(outbuf, "PING %u", i);

		clock_gettime(CLOCK_REALTIME, &ts1);

		if (write(s, outbuf, outbuf_len) == -1) {
			perror("send");
			return 1;
		}

		size_t accum = 0;
		do {
			int stat = read(s, inbuf+accum, outbuf_len-accum);
			if (stat == -1) {
				perror("recv fail");
				return 1;
			}
			accum += stat;
		} while ( accum < outbuf_len);

		clock_gettime(CLOCK_REALTIME, &ts2);
	
		diff = getdiff(ts1, ts2);
		double diff_ms = diff.tv_sec*1000 +(double)diff.tv_nsec/1000000;
		timearray[i] = diff_ms;
		printf("%.*s diff: %fms\n"
		, outbuf_len, inbuf, diff_ms);

	}
	double avg = 0, variance = 0, stddev = 0;
	for (int i=0; i<measures; i++) {
		avg += timearray[i];
	}
	avg /= measures;

	for (int i=0; i<measures; i++) {
		double tmp = timearray[i]-avg;
		variance += tmp*tmp;
	}
	variance /= measures;
	stddev = sqrt(variance);


	printf("Avg: %.1fms std.dev: %.1fms\n", avg, stddev);

	close(s);
	return 0;
}