Ian you nailed it too - thanks for your advice about micro-benchmarks. I
will fix them per your suggestion.

On Tue, Feb 28, 2017 at 7:41 AM, Shubha Ramani <shubharam...@gmail.com>
wrote:

> Dan thank you so much. Indeed you solved it and thanks for your advice
> about the micro-benchmarks
> too.
>
> Sincerely,
>
> Shubha
>
> On Mon, Feb 27, 2017 at 7:25 PM, Dan Kortschak <
> dan.kortsc...@adelaide.edu.au> wrote:
>
>> When the python functions are actually called the comparison is more
>> reasonable:
>>
>> ```
>> ~/concat $ go test -bench . concat_test.go
>> BenchmarkUnicodeConcat-8          200000             10379 ns/op
>> PASS
>> ok      command-line-arguments  2.193s
>> ~/concat $ python concat_test.py
>> time_taken = 8901.3030529 nsec
>>
>> ~/concat $ python3 concat_test.py
>> time_taken = 7210.201049922034 nsec
>> ```
>>
>> This involved appending "; concat()" and "; mysetup()" to the stmt and
>> setup parameters.
>>
>> On Mon, 2017-02-27 at 19:03 -0800, Ian Lance Taylor wrote:
>> > On Mon, Feb 27, 2017 at 6:40 PM, Shubha Ramani <shubharam...@gmail.co
>> > m> wrote:
>> > >
>> > > mysetup is being called here:
>> > >
>> > > times = timeit.Timer(stmt="from __main__ import
>> > > concat",setup="gc.enable();from __main__ import
>> > > mysetup").repeat(7,loops)
>> > >
>> > > Look at "from __main__ import mysetup" after gc.enable();
>> > > gc,enable()
>> > > according to timeit rules needs to be called
>> > > before the setup function. Are you saying Ian that I only import
>> > > but never
>> > > call mysetup() ? Perhaps you are right but I followed examples and
>> > > this is
>> > > what I thought was correct (maybe not).
>> > I added print statements to the Python functions and they never
>> > printed.  I don't know whether that proves anything or not.
>> >
>> > Your micro-benchmarks are suspicious because they don't exist.  It
>> > would take very little for the compiler to simply discard all the
>> > computation.  I'm actually surprised that does not happen with the Go
>> > compiler--seems like a minor bug.  I wonder whether the Python
>> > interpreter is doing that one way or another.
>> >
>> > You should always write a micro-benchmark to compute a real result
>> > and
>> > verify that the result is what you expect.  Otherwise a clever
>> > compiler will completely defeat the purpose of the benchmark.
>> >
>> > 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 golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to