FAQ
Hi all,

I've recently got myself a new machine with Windows 7 x64 on it, so I
could finally give Go a spin with tdm64. What I immediately noticed is
that pkg/runtime tests take almost 2 minutes! O.o The culprit turned
out to be a 100k iteration loop in one of the tests (latest
release-branch.go1):

=== RUN TestEnumWindows
--- PASS: TestEnumWindows (0.04 seconds)
[...]
=== RUN TestCallbackPanicLoop
--- PASS: TestCallbackPanicLoop (114.55 seconds)

Is it supposed to be that slow on Windows x64? Did anybody investigate
what's going on (like, maybe EnumWindows is too expensive to use like
that)?

P.S. I also just tested 32-bit version and no change
P.P.S. i also just tested the latest tip and still no change :(

--

Search Discussions

  • Daniel Theophanes at Oct 12, 2012 at 10:09 pm
    On my Win7 box:
    C:\dev\go\src>go env && go test runtime
    set GOARCH=amd64
    set GOBIN=C:\code\bin
    set GOCHAR=6
    set GOEXE=.exe
    set GOGCCFLAGS=-g -O2 -m64 -mthreads
    set GOHOSTARCH=amd64
    set GOHOSTOS=windows
    set GOOS=windows
    set GOPATH=C:\code
    set GOROOT=C:\dev\go
    set GOTOOLDIR=C:\dev\go\pkg\tool\windows_amd64
    set CGO_ENABLED=1
    ok runtime 9.290s

    -Daniel

    On Friday, October 12, 2012 1:30:22 PM UTC-7, Alexey Borzenkov wrote:

    Hi all,

    I've recently got myself a new machine with Windows 7 x64 on it, so I
    could finally give Go a spin with tdm64. What I immediately noticed is
    that pkg/runtime tests take almost 2 minutes! O.o The culprit turned
    out to be a 100k iteration loop in one of the tests (latest
    release-branch.go1):

    === RUN TestEnumWindows
    --- PASS: TestEnumWindows (0.04 seconds)
    [...]
    === RUN TestCallbackPanicLoop
    --- PASS: TestCallbackPanicLoop (114.55 seconds)

    Is it supposed to be that slow on Windows x64? Did anybody investigate
    what's going on (like, maybe EnumWindows is too expensive to use like
    that)?

    P.S. I also just tested 32-bit version and no change
    P.P.S. i also just tested the latest tip and still no change :(
    --
  • peterGo at Oct 12, 2012 at 11:34 pm
    Alexey,

    Windows 7 64-bit

    C:\go\src\pkg\runtime>hg id
    a3af77cc3fcd tip

    C:\go\src\pkg\runtime>go env
    set GOARCH=386
    set GOBIN=C:\go\bin
    set GOCHAR=8
    set GOEXE=.exe
    set GOGCCFLAGS=-g -O2 -m32 -mthreads
    set GOHOSTARCH=386
    set GOHOSTOS=windows
    set GOOS=windows
    set GOPATH=C:\gopath
    set GOROOT=C:\go
    set GOTOOLDIR=C:\go\pkg\tool\windows_386
    set CGO_ENABLED=1

    C:\go\src\pkg\runtime>go test -v
    === RUN TestSideEffectOrder
    --- PASS: TestSideEffectOrder (0.00 seconds)
    . . .
    === RUN TestEnumWindows
    --- PASS: TestEnumWindows (0.00 seconds)
    . . .
    === RUN TestCallbackPanicLoop
    --- PASS: TestCallbackPanicLoop (1.16 seconds)
    . . .
    === RUN TestCallbackInAnotherThread
    --- PASS: TestCallbackInAnotherThread (0.00 seconds)
    PASS
    ok runtime 4.500s

    Peter
    On Oct 12, 4:30 pm, Alexey Borzenkov wrote:
    Hi all,

    I've recently got myself a new machine with Windows 7 x64 on it, so I
    could finally give Go a spin with tdm64. What I immediately noticed is
    that pkg/runtime tests take almost 2 minutes! O.o The culprit turned
    out to be a 100k iteration loop in one of the tests (latest
    release-branch.go1):

    === RUN TestEnumWindows
    --- PASS: TestEnumWindows (0.04 seconds)
    [...]
    === RUN TestCallbackPanicLoop
    --- PASS: TestCallbackPanicLoop (114.55 seconds)

    Is it supposed to be that slow on Windows x64? Did anybody investigate
    what's going on (like, maybe EnumWindows is too expensive to use like
    that)?

    P.S. I also just tested 32-bit version and no change
    P.P.S. i also just tested the latest tip and still no change :(
    --
  • Brad Fitzpatrick at Oct 12, 2012 at 11:57 pm
    Maybe you have a program on your machine doing some DLL hooking.
    Anti-virus? Malware?
    On Fri, Oct 12, 2012 at 1:30 PM, Alexey Borzenkov wrote:

    Hi all,

    I've recently got myself a new machine with Windows 7 x64 on it, so I
    could finally give Go a spin with tdm64. What I immediately noticed is
    that pkg/runtime tests take almost 2 minutes! O.o The culprit turned
    out to be a 100k iteration loop in one of the tests (latest
    release-branch.go1):

    === RUN TestEnumWindows
    --- PASS: TestEnumWindows (0.04 seconds)
    [...]
    === RUN TestCallbackPanicLoop
    --- PASS: TestCallbackPanicLoop (114.55 seconds)

    Is it supposed to be that slow on Windows x64? Did anybody investigate
    what's going on (like, maybe EnumWindows is too expensive to use like
    that)?

    P.S. I also just tested 32-bit version and no change
    P.P.S. i also just tested the latest tip and still no change :(

    --

    --
  • Brainman at Oct 13, 2012 at 12:22 am
    === RUN TestSideEffectOrder
    --- PASS: TestSideEffectOrder (0.00 seconds)
    === RUN TestChanSendInterface
    --- PASS: TestChanSendInterface (0.00 seconds)
    === RUN TestPseudoRandomSend
    --- PASS: TestPseudoRandomSend (0.00 seconds)
    === RUN TestMultiConsumer
    --- PASS: TestMultiConsumer (0.14 seconds)
    === RUN TestCgoCrashHandler
    --- PASS: TestCgoCrashHandler (0.92 seconds)
    === RUN TestCrashHandler
    --- PASS: TestCrashHandler (0.37 seconds)
    === RUN TestGcSys
    --- PASS: TestGcSys (0.53 seconds)
    gc_test.go:36: used 1114112 extra bytes
    === RUN TestGcDeepNesting
    --- PASS: TestGcDeepNesting (0.00 seconds)
    gc_test.go:52: 0xf840106000
    === RUN TestLFStack
    --- PASS: TestLFStack (0.00 seconds)
    === RUN TestLFStackStress
    --- PASS: TestLFStackStress (0.06 seconds)
    === RUN TestParFor
    --- PASS: TestParFor (0.00 seconds)
    === RUN TestParFor2
    --- PASS: TestParFor2 (0.00 seconds)
    === RUN TestParForSetup
    --- PASS: TestParForSetup (0.00 seconds)
    === RUN TestParForParallel
    --- PASS: TestParForParallel (0.19 seconds)
    === RUN TestStopTheWorldDeadlock
    --- PASS: TestStopTheWorldDeadlock (1.13 seconds)
    === RUN TestFloat64
    --- PASS: TestFloat64 (0.10 seconds)
    === RUN TestStackSplit
    --- PASS: TestStackSplit (0.01 seconds)
    === RUN TestCaller
    --- PASS: TestCaller (0.00 seconds)
    === RUN TestStdCall
    --- PASS: TestStdCall (0.00 seconds)
    === RUN Test64BitReturnStdCall
    --- PASS: Test64BitReturnStdCall (0.00 seconds)
    === RUN TestCDecl
    --- PASS: TestCDecl (0.00 seconds)
    === RUN TestEnumWindows
    --- PASS: TestEnumWindows (0.00 seconds)
    === RUN TestCallback
    --- PASS: TestCallback (0.00 seconds)
    === RUN TestCallbackGC
    --- PASS: TestCallbackGC (0.00 seconds)
    === RUN TestCallbackPanic
    --- PASS: TestCallbackPanic (0.00 seconds)
    === RUN TestCallbackPanicLoop
    --- PASS: TestCallbackPanicLoop (4.70 seconds)
    === RUN TestCallbackPanicLocked
    --- PASS: TestCallbackPanicLocked (0.00 seconds)
    === RUN TestBlockingCallback
    --- PASS: TestBlockingCallback (0.00 seconds)
    === RUN TestCallbackInAnotherThread
    --- PASS: TestCallbackInAnotherThread (0.00 seconds)
    PASS
    ok runtime 8.823s

    I would say Brad is right. Perhaps, you have something that monitors
    "suspicious" activities. But, I think you know about these things better
    then anyone here. Don't you?

    Alex

    --
  • Alexey Borzenkov at Oct 13, 2012 at 8:07 am

    On Sat, Oct 13, 2012 at 4:21 AM, brainman wrote:
    PASS
    ok runtime 8.823s

    I would say Brad is right. Perhaps, you have something that monitors
    "suspicious" activities. But, I think you know about these things better
    then anyone here. Don't you?
    Of course! I have our Kaspersky Internet Security installed and it was
    strange that disabling it didn't help. I wanted to check back here if
    such a speed was expected, and now I know that something is definitely
    not right and I'm going to investigate. Thank you all for help. :)

    --
  • Alexey Borzenkov at Oct 13, 2012 at 10:58 am

    On Sat, Oct 13, 2012 at 12:07 PM, Alexey Borzenkov wrote:
    On Sat, Oct 13, 2012 at 4:21 AM, brainman wrote:
    PASS
    ok runtime 8.823s

    I would say Brad is right. Perhaps, you have something that monitors
    "suspicious" activities. But, I think you know about these things better
    then anyone here. Don't you?
    Of course! I have our Kaspersky Internet Security installed and it was
    strange that disabling it didn't help. I wanted to check back here if
    such a speed was expected, and now I know that something is definitely
    not right and I'm going to investigate. Thank you all for help. :)
    Ok, that was short. My biggest suspect was KIS2013, and indeed after
    uninstalling it and restarting panic loop started taking little more
    than 5 seconds. But the weirdest thing is after reinstalling KIS2013
    (this time latest English distro, instead of Russian) I couldn't
    reproduce it even after it fully updated. :-/

    --

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupgolang-nuts @
categoriesgo
postedOct 12, '12 at 8:37p
activeOct 13, '12 at 10:58a
posts7
users5
websitegolang.org

People

Translate

site design / logo © 2022 Grokbase