View difference between Paste ID: pxi9tu9v and J8UgWLuh
SHOW: | | - or go back to the newest paste.
1
#include <cassert>
2
#include <cstdlib>
3
#include <cstdio>
4
#include <ctime>
5
//#include <iostream>
6
#include <cstring>
7
//#include <string>
8
9
extern char ** environ;
10
11
const int LOOP=100000;
12
13
inline void loop1(char *buf, clock_t t, int a, int i) {
14
	t=clock();
15
	for(a=0;a<LOOP;++a) {
16
		for(i=0;environ[i]!=NULL;++i) {
17
			if(strncmp(environ[i],"PATH=",5)==0) buf=environ[i]+5;
18
		}
19
	}
20-
	char *buf;
20+
21-
	clock_t t=clock();
21+
22-
	for(int a=0;a<LOOP;++a) {
22+
23-
		for(int i=0;environ[i]!=NULL;++i) {
23+
24
25
inline void loop2(char *buf, clock_t t, int a, int i, char* envp[]) {
26
	t=clock();
27
	for(a=0;a<LOOP;++a) {
28
		for(i=0;envp[i]!=NULL;++i) {
29
			if(strncmp(envp[i],"PATH=",5)==0) buf=envp[i]+5;
30
		}
31-
	for(int a=0;a<LOOP;++a) {
31+
32-
		for(int i=0;envp[i]!=NULL;++i) {
32+
33
	printf("%s\n", buf);
34
	printf ("%d clicks (%f seconds)\n", (int)t, ((float)t)/CLOCKS_PER_SEC);
35
}
36
37
inline void loop3(char *buf, clock_t t, int a) {
38
	t=clock();
39
	for(a=0;a<LOOP;++a) {
40-
	for(int a=0;a<LOOP;++a) {
40+
41
	}
42
	t=clock()-t;
43
	printf("%s\n", buf);
44
	printf ("%d clicks (%f seconds)\n", (int)t, ((float)t)/CLOCKS_PER_SEC);
45
}
46
47
int main(int argc, char* argv[], char* envp[]) {
48
	char *buf=NULL;
49
	clock_t t=0;
50
	int a=0;
51
	int i=0;
52
	if(argc==2) {
53
		if( strcmp(argv[1],"-v")==0 || strcmp(argv[1],"--version")==0 ) {
54
			printf("%s version 0.0.1\n", argv[0]);
55
		}
56
		if(argv[1][1]=='\0') {
57
			if(argv[1][0]=='1') loop1(buf, t, a, i);
58
			if(argv[1][0]=='2') loop2(buf, t, a, i, envp);
59
			if(argv[1][0]=='3') loop3(buf, t, a);
60
		}
61
		return 1;
62
	}
63
	return 0;
64
}
65
//