On 23 Dec 2007, at 21:17, James H. wrote:
>
> Hey Fred.
>
> I've replied to your ticket, given you my +1, and made a suggestion in
> the form of another patch. This is a good idea.
>
Cool.Not sure why but I wasn't able to make it look nice without
splitting it into 2 but you change looks good.
Fred
> James
>
> On Dec 22, 11:46 am, Frederick Cheung <[EMAIL PROTECTED]>
> wrote:
>> On 21 Dec 2007, at 18:48, Frederick Cheung wrote:
>>
>>
>>
>>
>>
>>> On 21 Dec 2007, at 18:18, Josh Susser wrote:
>>
>>>> I'm the author of the new exists? code, and I also looked at
>>>> doing it
>>>> with a lower-level connection call instead of a find with :select
>>>> option. I don't have the data around anymore, but as I recall, the
>>>> benchmarks showed that using the select_all approach didn't perform
>>>> as
>>>> well, so I went with the find with :select approach. I hadn't
>>>> thought
>>>> about the after_find callback interaction, and I guess no one else
>>>> has
>>>> run into that problem before now either. Some stuff has changed in
>>>> AR
>>>> that might have affected performance of the select_all approach
>>>> since
>>>> I tried it last, so it might be worth revisiting now.
>>
>>> Well I ended up with that code by taking apart find :first and
>>> removing the instantiation of rows at the end, so I don't think it
>>> should be a problem.
>>> What I posted should be doing exactly what find :first does, but
>>> without the instantiation
>>
>> I ran some numbers today:
>>
>> ids = (1..10000).map { rand 2000000}
>>
>> Benchmark.bmbm do |x|
>> x.report("exists") { ids.each {|id| Question.exists? id} }
>> end
>>
>> Current trunk (find:first)
>>
>> Rehearsal ------------------------------------------
>> exists 4.700000 0.620000 5.320000 ( 6.437581)
>> --------------------------------- total: 5.320000sec
>>
>> user system total real
>> exists 4.690000 0.620000 5.310000 ( 6.574966)
>>
>> select_all
>>
>> Rehearsal ------------------------------------------
>> exists 4.650000 0.740000 5.390000 ( 8.984423)
>> --------------------------------- total: 5.390000sec
>>
>> user system total real
>> exists 4.010000 0.590000 4.600000 ( 5.606526)
>>
>> Not mind blowing and it's obviously not going to make a massive
>> difference to anyone, but for me at least sets aside any performance
>> worries.
>>
>> Fred
> >
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---