示例#1
0
int main(int argc, char* argv[])
{
	TestObject* test = new TestObject();

	string whatToTest = argv[1];

	struct timeval before;
	struct timeval after;

	test->void_void();

	int ret;
	int retValue;

	int testNumber = 10000;

	if (whatToTest == "0")
	{
		ofstream void_void("void_void");
		if(!void_void) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			test->void_void();

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			void_void << time << endl;
		}
		void_void.close();
	}
	else if (whatToTest == "1")
	{
		ofstream void_int("void_int");
		if(!void_int) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			test->void_int(0);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			void_int << time << endl;
		}
		void_int.close();
	}
	else if (whatToTest == "2")
	{
		ofstream int_void("int_void");
		if(!int_void) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_void();

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			int_void << time << endl;
		}
		int_void.close();
	}
	else if (whatToTest == "3")
	{
		ofstream int_int("int_int");
		if(!int_int) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_int(1);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			int_int << time << endl;
		}
		int_int.close();
	}
	else if (whatToTest == "4")
	{
		ofstream int_intInt("int_intInt");
		if(!int_intInt) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_intInt(1, 2);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			int_intInt << time << endl;
		}
		int_intInt.close();
	}
	else if (whatToTest == "5")
	{
		ofstream int_intIntInt("int_intIntInt");
		if(!int_intIntInt) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_intIntInt(1, 2, 3);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			int_intIntInt << time << endl;
		}
		int_intIntInt.close();
	}
	else if (whatToTest == "6")
	{
		ofstream vectorOfIntsX10("vectorOfIntsX10");
		if(!vectorOfIntsX10) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		std::vector<int> intsX10(10, 4);
		for (int i = 0; i != intsX10.size(); ++i)
			intsX10[i] = i;
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_vectorOfInts(intsX10);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			vectorOfIntsX10 << time << endl;
		}
		vectorOfIntsX10.close();
	}
	else if (whatToTest == "7")
	{
		ofstream vectorOfIntsX100("vectorOfIntsX100");
		if(!vectorOfIntsX100) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		std::vector<int> intsX100(100, 6);
		for (int i = 0; i != intsX100.size(); ++i)
			intsX100[i] = i;
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_vectorOfInts(intsX100);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			vectorOfIntsX100 << time << endl;
		}
		vectorOfIntsX100.close();
	}
	else if (whatToTest == "8")
	{
		ofstream vectorOfIntsX1000("vectorOfIntsX1000");
		if(!vectorOfIntsX1000) { 
			cout << "Cannot open file.\n"; 
			exit(0);
		} 
		std::vector<int> intsX1000(1000, 7);
		for (int i = 0; i != intsX1000.size(); ++i)
			intsX1000[i] = i;
		for (int i = 0; i != testNumber; ++i)
		{
			retValue = gettimeofday(&before, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}

			ret = test->int_vectorOfInts(intsX1000);

			retValue = gettimeofday(&after, 0);
			if (retValue != 0) {
				cerr << "Error with gettimeofday" << endl;
				exit(0);
			}
			double time = (after.tv_sec - before.tv_sec)*1000000 + (after.tv_usec - before.tv_usec);
			vectorOfIntsX1000 << time << endl;
		}
		vectorOfIntsX1000.close();
	}
	return 0;
}