-
Notifications
You must be signed in to change notification settings - Fork 7.6k
Improve pipeline for native commands #559
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
Moving to a next milestone, it took longer then I anticipated. |
How are you planning on addressing this one? AFAIK, the reason this is happening is that the pipeline waits for everything to get loaded into memory before it takes input. There's another scenario where people want to pipe large amounts of binary data from a native binary and it's putting all of that binary data (5+ GBs) into memory before passing them to the next native command in PowerShell. |
I'm putting that on hold. |
Related: #1908 |
@be5invis absolutely! Current plan is to address it by two separate changes:
Together these two changes will cover simple scenarios:
Unfortunately |
@vors I suggest adding a “as-bytes” operator that accepts raw (bytes) input and redirecting from Native to PS can use this scanerio: native | as-bytes | your-parser | ps |
I'm going to narrow scope if this issue just to the first part:
For the |
Doing this work, I'm constantly having problems because of #1486 |
Does the fix work for the use case with fd redirection ?
PowerShell also mangles output when redirecting file descriptors. |
Consider
Run it in PS and in bash. Compare UX.
In PS output of ping is collected, then it's passed down the pipe all together.
In bash you see output of grep instantly after ping send one line to the pipe.
As @BrucePay pointed out it never appeared to be a problem on windows due to the lack of pipeable native command-line tools.
As a minimum, we should sort out this buffering flow.
Desirable: improve pipe speed for certain cases (i.e. native command to native command).
Open question: can we use a native pipe to provide a compatible speed, when pipeline doesn't involve PS commands?
The text was updated successfully, but these errors were encountered: