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

-- 
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