Python(2.5) reads an input file FASTER than pure C(Mingw)

SL ni at hao.com
Sun Apr 27 11:47:27 CEST 2008


Have you tried this now?

> First try again with pure C code and compile with a C compiler, not
> with C++ code and C++ compiler.
>  Then, tweak the code to use more buffering, to make it more similar
> to readline code, like this (not tested):

> #include <stdio.h>
> #include <time.h>

> char vs[1002000][100];
> char buffer[65536];

> int main(void) {
>     FILE *fp;
>     int i, m;
>     clock_t begin, end;
>     double t;

>     begin = clock();
>     fp = fopen("cvspython.txt", "r");
>     i = 0;
>     setvbuf(fp, buffer, _IOFBF, sizeof(buffer));
>     while(1) {
>         if(!fgets(vs[i], 100, fp)) break;
>         ++i;
>     }
>     fclose(fp);
>     printf("%d\n", i);
>     end = clock();
>     t = (double)(end - begin)/CLOCKS_PER_SEC;
>     printf("%g\n", t);

>     scanf("%d", &m);
>     printf("%s\n", vs[m]);
>     getchar();
>     return 0;
> }

>  Finally, repeat your statement again, if necessary.



More information about the Python-list mailing list