Re: [PHP-DEV] Lamenting PHP's streaming support...

2004-08-01 Thread Sterling Hughes
php-general@ can answer your question...

-sterling

On Sun, 01 Aug 2004 16:28:18 -0400, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> wrote:
> Hi everyone,
> 
> I'm trying to write some serious parsing applications in PHP.  I find myself 
> frequently lamenting the 4GL-like support for buffered streams.  I'd rather a full 
> fledged streaming API with stream handles (or objects) like you get in mature 3GL 
> languages like C and Java.
> 
> I'm making do with the single character-stream buffer available to me in the "output 
> buffer."  I wrap this stream in classes that emulate distinct character streams by 
> saving the current output buffer, clearing the output buffer for the new virtual 
> stream, and then restoring the original output buffer when the virtual stream is 
> closed.
> 
> This works, but it costs in overhead and requires repeatedly creating string objects 
> to store old buffers and then rewriting those objects back to the output buffer.  
> This is less than ideal from both a performance standpoint and a complexity 
> standpoint (and an increased potential for wierd errors).
> 
> I'm not too concerned about the performance issues of these virtual buffers because 
> I can architect the application so that it minimizes these switches.  However, I 
> find myself (so far) unable to architect around another serious performance issue.
> 
> I'm having to create a new string for each character sequence that I write to the 
> output buffer.  I'd rather just copy the substring of the document being parsed 
> directly to the output buffer.  Object creation is an expensive activity when 
> thousands of objects needed to be created for a single page hit.
> 
> All I need to deal with this problem is a new PHP function:
> 
> ob_write($string, $start, $length)
> 
> This would write the characters in substr($string, $start, $length) to the output 
> buffer without creating an intermediate string object.
> 
> Is there anything on the horizon that would give me the kind of streaming support 
> I'm looking for?
> 
> Thanks for your help!
> ~joe
> 
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 


-- 
..II..

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DEV] Lamenting PHP's streaming support...

2004-08-01 Thread jtl_phpdotnet
Hi everyone,

I'm trying to write some serious parsing applications in PHP.  I find myself 
frequently lamenting the 4GL-like support for buffered streams.  I'd rather a full 
fledged streaming API with stream handles (or objects) like you get in mature 3GL 
languages like C and Java.

I'm making do with the single character-stream buffer available to me in the "output 
buffer."  I wrap this stream in classes that emulate distinct character streams by 
saving the current output buffer, clearing the output buffer for the new virtual 
stream, and then restoring the original output buffer when the virtual stream is 
closed.

This works, but it costs in overhead and requires repeatedly creating string objects 
to store old buffers and then rewriting those objects back to the output buffer.  This 
is less than ideal from both a performance standpoint and a complexity standpoint (and 
an increased potential for wierd errors).

I'm not too concerned about the performance issues of these virtual buffers because I 
can architect the application so that it minimizes these switches.  However, I find 
myself (so far) unable to architect around another serious performance issue.

I'm having to create a new string for each character sequence that I write to the 
output buffer.  I'd rather just copy the substring of the document being parsed 
directly to the output buffer.  Object creation is an expensive activity when 
thousands of objects needed to be created for a single page hit.

All I need to deal with this problem is a new PHP function:

ob_write($string, $start, $length)

This would write the characters in substr($string, $start, $length) to the output 
buffer without creating an intermediate string object.

Is there anything on the horizon that would give me the kind of streaming support I'm 
looking for?

Thanks for your help!
~joe

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php