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 | // |