ID:               32806
 Updated by:       [EMAIL PROTECTED]
 Reported By:      peoned at yahoo dot com
-Status:           Bogus
+Status:           Feedback
 Bug Type:         Performance problem
 Operating System: Linux
 PHP Version:      5.0.4
 New Comment:

How long are the lines in your file?


Previous Comments:
------------------------------------------------------------------------

[2005-04-28 01:58:55] [EMAIL PROTECTED]

Startup costs could be 8 seconds or more depending on the extensions
you are loading. That said PHP's fgets() is still slower then Perl's
because of it's implementation that does not wrap the C library fgets()
or getline(), but rather uses custom code.

------------------------------------------------------------------------

[2005-04-24 20:20:54] peoned at yahoo dot com

I don't agree that this is a bogus bug. You want to tell me that the
start up cost is responsible for 8 seconds? Than you have a performance
bug with your start up cost. Run it with fread($fin, 1024); where did
the start up cost go? Simplifying the script to while($line =
fgets($fin)){} doesn't help either. And automatic detection of new
lines is disabled. Did you run some of your own tests?

------------------------------------------------------------------------

[2005-04-24 18:25:52] [EMAIL PROTECTED]

Performance is equivalent when you simplify your PHP script and stop
timing php's start-up costs. Also make sure that automatic detection of
new lines is disabled.

------------------------------------------------------------------------

[2005-04-24 00:13:01] peoned at yahoo dot com

Perl code:

#!/usr/local/bin/perl

open(IN, "<afe199406");
open(OUT, ">perl_out.txt");

while(<IN>)
{
    print OUT $_;
}

close(OUT);
close(IN);


C code:

#include <stdio.h>
#include <string.h>

int main(void)
{

    size_t n = 5000;
    char *ptr;

    FILE *fp;
    FILE *fi;
    fp = fopen("int.txt", "rb");
    fi = fopen("out.txt", "wb");

    ptr = (char *)malloc(5000);

    int i=0;
    while(getline(&ptr,&n,fp) != -1)
    {
        fwrite(ptr, 1, strlen(ptr), fi);
    }

    free(ptr);

    fclose(fp);
    fclose(fi);
}


magic_quotes_runtime was off

------------------------------------------------------------------------

[2005-04-23 23:59:51] [EMAIL PROTECTED]

Can you provide the perl code you used..?
Also, if you have magic_quotes_runtime ini option set to off, it'll be
faster.


------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/32806

-- 
Edit this bug report at http://bugs.php.net/?id=32806&edit=1

Reply via email to