Great! Very kind of you

On Fri, Sep 1, 2017 at 11:01 AM, peterGo <go.peter...@gmail.com> wrote:

> Michael and Sebastien,
>
> Since my bytconv package is currently private, I'm fixing it up for
> publication. I hope to make bytconv available in go get'able form within a
> week. I'll let you know when it' is avalable.
>
> Peter
>
> On Friday, September 1, 2017 at 3:50:29 AM UTC-4, Sebastien Binet wrote:
>>
>> Hi,
>>
>> I'd also be very interested in looking at 'bytconv'. And most probably
>> should use it in anger :)
>>
>> -s
>>
>> sent from my droid
>>
>> On Aug 31, 2017 8:28 PM, "Michael Jones" <michae...@gmail.com> wrote:
>>
>>> Nice! Is "bytconv" shared somewhere?
>>>
>>> On Thu, Aug 31, 2017 at 10:53 AM, peterGo <go.pe...@gmail.com> wrote:
>>>
>>>> Michael,
>>>>
>>>> n your code, you have :
>>>>
>>>> const n = 1000 * 1000
>>>>
>>>> for i := 0; i < n && scan.Scan(); i++ {
>>>>     d, _ := strconv.Atoi(scan.Text())
>>>>     array[i] = int64(d)
>>>> }
>>>>
>>>> https://play.golang.org/p/SgpAXyvsGs
>>>>
>>>> Here's a benchmark that demonstrates the fundamental issue, unnecessary
>>>> string conversions.
>>>> ,
>>>> BenchmarkAtoiBytconv-4       50000000     30.4 ns/op    0 B/op    0
>>>> allocs/op
>>>> BenchmarkAtoiStrconv-4       20000000    102 ns/op      8 B/op    1
>>>> allocs/op
>>>>
>>>> https://play.golang.org/p/oSQ8RZeGL7
>>>>
>>>> Peter
>>>>
>>>>
>>>> On Thursday, August 31, 2017 at 12:24:20 PM UTC-4, peterGo wrote:
>>>>>
>>>>> Michael,
>>>>>
>>>>> Your read times look slow to me. I used bytconv instead of strconv.
>>>>>
>>>>> bytconv:
>>>>> read 1000000 98.517584ms
>>>>> sort 1000000 481.994354ms
>>>>>
>>>>> strconv:
>>>>> read 1000000 174.720883ms
>>>>> sort 1000000 479.437831ms
>>>>>
>>>>> bytconv is the missing Go standard library package. bytconv is the
>>>>> byte input analog of string input strconv.
>>>>>
>>>>> Peter
>>>>>
>>>>> On Wednesday, August 30, 2017 at 7:43:49 PM UTC-4, Michael Jones wrote:
>>>>>>
>>>>>> good point. I was trying to show that the buffered stdin was "just
>>>>>> like" normal scanning but the performance was less compared to the 
>>>>>> updated
>>>>>> scanning code.
>>>>>>
>>>>>> here is another version, this time with a data generator and since
>>>>>> the input is line oriented, the default split function is fine.
>>>>>>
>>>>>> https://play.golang.org/p/SgpAXyvsGs
>>>>>> read 1000000 65.362993ms
>>>>>> sort 1000000 187.092493ms
>>>>>>
>>>>>>
>>>>>> On Wed, Aug 30, 2017 at 2:56 PM, Patrick Smith <pat42...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> That is simpler, but slower. Not nearly as slow as using unbuffered
>>>>>>> io though. Timings on my machine, reading 1e6 integers chosen randomly 
>>>>>>> from
>>>>>>> the range [0,1e18):
>>>>>>>
>>>>>>> Original code https://play.golang.org/p/grB-muK7hw
>>>>>>> 5.626974435s
>>>>>>> 155.367779ms
>>>>>>>
>>>>>>> Original poster's optimized code https://play.golang.org/p
>>>>>>> /1Aoxwwv-zo
>>>>>>> 168.638597ms
>>>>>>> 150.923225ms
>>>>>>>
>>>>>>> Michael's simpler code https://play.golang.org/p/tMyipz6sYU
>>>>>>> 954.543351ms
>>>>>>> 166.710399ms
>>>>>>>
>>>>>>> So this is about 6 times slower. My guess is this is due to the use
>>>>>>> of reflection in fmt.Fscanf. But that is just a guess; I don't really 
>>>>>>> have
>>>>>>> any evidence to back it up.
>>>>>>>
>>>>>>> On Wed, Aug 30, 2017 at 1:33 PM, Michael Jones <michae...@gmail.com>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> This can be much simpler...
>>>>>>>> https://play.golang.org/p/tMyipz6sYU
>>>>>>>>
>>>>>>>> On Wed, Aug 30, 2017 at 7:55 AM, Nilsocket <nils...@gmail.com>
>>>>>>>> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>> Can you provide example code for how you read the input?
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> Both of them were given same input size is:1000000, (i.e., 1
>>>>>>>>> million)
>>>>>>>>>
>>>>>>>>> https://play.golang.org/p/grB-muK7hw
>>>>>>>>> // Time taken to read input : 9.840256889s
>>>>>>>>> // Time taken to sort: 731.469604ms
>>>>>>>>>
>>>>>>>>> I have implemented the same using bufio:
>>>>>>>>>
>>>>>>>>> https://play.golang.org/p/1Aoxwwv-zo
>>>>>>>>> // Time taken to read input : 377.038152ms
>>>>>>>>> // Time taken to sort: 688.20638ms
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> 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...@googlegroups.com.
>>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Michael T. Jones
>>>>>>>> michae...@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...@googlegroups.com.
>>>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Michael T. Jones
>>>>>> michae...@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...@googlegroups.com.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Michael T. Jones
>>> michae...@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...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>


-- 
Michael T. Jones
michael.jo...@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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to