On Tue, Nov 19, 2019 at 7:29 AM <miha.vrhov...@gmail.com> wrote:
>
> Robert is right, all 3 examples are the same (they execute the same command 
> with wine being set up and then teared down again). wine itself is not an 
> issue. It's go's exec that does something extremely funny.

Sorry, I misread the original note.  But if I'm reading it correctly
now, I find these results pretty hard to believe.  Can anybody else
replicate them?

Ian


> On Tuesday, November 19, 2019 at 4:22:47 PM UTC+1, Robert Engels wrote:
>>
>>
>> I think the point the OP is making is that when he runs the command from the 
>> Linux command line it completes in 2 sec - so the Wine startup time should 
>> not be the issue.
>>
>>
>> -----Original Message-----
>> >From: Ian Lance Taylor <ia...@golang.org>
>> >Sent: Nov 19, 2019 9:15 AM
>> >To: miha.v...@gmail.com
>> >Cc: golang-nuts <golan...@googlegroups.com>
>> >Subject: Re: [go-nuts] ultra slow os.Exec
>> >
>> >On Tue, Nov 19, 2019 at 6:52 AM <miha.v...@gmail.com> wrote:
>> >>
>> >> I'm running windows cli exe on linux via wine using os.Exec command.. 
>> >> this takes 28s to complete.
>> >> If I run the same command via linux cli it takes 2s to complete, if I run 
>> >> the same command via php's exec it also takes about 2 seconds to complete.
>> >>
>> >> == linux cli ==
>> >>
>> >> time WINEDEBUG=err-all,fixme-all WINEARCH=win32 
>> >> /opt/wine-staging/bin/wine cmd.exe /c help
>> >> ....
>> >> real    0m1,366s
>> >> user    0m0,002s
>> >> sys    0m0,225s
>> >>
>> >> == php ==
>> >> cat t.php
>> >> <?php
>> >> $out=array();
>> >>
>> >> exec('WINEDEBUG=err-all,fixme-all WINEARCH=win32 
>> >> /opt/wine-staging/bin/wine cmd.exe /c help', $out);
>> >>
>> >> var_dump($out);
>> >>
>> >> .....
>> >>
>> >> real    0m1,427s
>> >> user    0m0,035s
>> >> sys    0m0,216s
>> >>
>> >>
>> >> ==go exec==
>> >>
>> >> func main() {
>> >>     now := time.Now()
>> >>     ctx, cancel := context.WithTimeout(context.Background(), 
>> >> 120*time.Second)
>> >>     defer cancel()
>> >>     cmd := exec.CommandContext(ctx, "/opt/wine-staging/bin/wine", "cmd", 
>> >> "/c", "help")
>> >>     cmd.Env = []string{"WINEDEBUG=err-all,fixme-all", "WINEARCH=win32"}
>> >>     output, err := cmd.CombinedOutput()
>> >>     if err != nil {
>> >>         fmt.Println(err)
>> >>     }
>> >>     fmt.Println(string(output))
>> >>     fmt.Println(time.Now().Sub(now))
>> >> }
>> >>
>> >> time bin/osexec
>> >>
>> >> real    0m39,915s
>> >> user    0m17,062s
>> >> sys    0m0,195s
>> >>
>> >>
>> >> * I have tried to set stdin and std out directly to the one from os (no 
>> >> difference)
>> >> * I have replaced cmd.CombinedOutput with cmd.Run() (no difference)
>> >>
>> >> go version
>> >> go version go1.13.3 linux/amd64
>> >> I'm totally clueless on what's going on.
>> >
>> >How long does it take to just run the wine command from the shell?
>> >
>> >My first guess would certainly be that the problem is in wine, not in
>> >Go's os/exec package.  Starting up a Windows emulator has to take a
>> >certain amount of time.
>> >
>> >Ian
>> >
>> >--
>> >You received this message because you are subscribed to the Google Groups 
>> >"golang-nuts" group.
>> >To unsubscribe from this group and stop receiving emails from it, send an 
>> >email to golan...@googlegroups.com.
>> >To view this discussion on the web visit 
>> >https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXJZy61dX_UetsKY0r%3DNMcoBcE4sCuFZVzvvPme%3DjTTDg%40mail.gmail.com.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to golang-nuts+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/golang-nuts/037e16e2-158a-4cf7-8a5f-8b940d55e64a%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcXR3ADH6J28wmY7vneHVnNRpGf0yia8aAyUdSrB62qwQg%40mail.gmail.com.

Reply via email to