v3 slower then v2

33 views
Skip to first unread message

mbiebl

unread,
Jun 24, 2016, 12:22:48 PM6/24/16
to SabreDAV Discussion
Hi,

I've run some homegrown benchmarks (creating 1000 contacts, reading 1000 contacts, deleteing 1000 contacts) against v2.0.9 and v3.1.4.

It seem v2 is quite a bit faster, e.g. for a retrieving 100 cards I have 229s v 114s, when running under xdebug, without xdebug v2 is about 30-50% faster.

There seems to be quite a bit of overhead in v3

Can anyone confirm these findings?

Evert Pot

unread,
Jun 24, 2016, 3:12:11 PM6/24/16
to SabreDAV Discussion

This would be a perfect case for blackfire.io, if you're willing to post it there!

I think the difference might largely due to the fact that we're now parsing vcards when reading them to see if we need to convert to a different vcard version.
I had some ideas to short-cut this by just looking for the string VERSION:*.x in the first few bytes, but it would be great to see (based on blackfire) if that hunch
is actually correct and will improve performance.


 

Michael Biebl

unread,
Jun 24, 2016, 3:18:32 PM6/24/16
to sabredav...@googlegroups.com
2016-06-24 21:12 GMT+02:00 Evert Pot <ever...@gmail.com>:
>
> On Friday, June 24, 2016 at 12:22:48 PM UTC-4, mbiebl wrote:
>>
>> Hi,
>>
>> I've run some homegrown benchmarks (creating 1000 contacts, reading 1000
>> contacts, deleteing 1000 contacts) against v2.0.9 and v3.1.4.
>>
>> It seem v2 is quite a bit faster, e.g. for a retrieving 100 cards I have

I meant 1000 cards here, not 100.

>> 229s v 114s, when running under xdebug, without xdebug v2 is about 30-50%
>> faster.
>>
>> There seems to be quite a bit of overhead in v3
>>
>> Can anyone confirm these findings?
>>
>
> This would be a perfect case for blackfire.io, if you're willing to post it
> there!

I don't know blackfire.io, but I will have a look. Thanks for the hint.

> I think the difference might largely due to the fact that we're now parsing
> vcards when reading them to see if we need to convert to a different vcard
> version.
> I had some ideas to short-cut this by just looking for the string
> VERSION:*.x in the first few bytes, but it would be great to see (based on
> blackfire) if that hunch
> is actually correct and will improve performance.

I see a lot more string handling calls in the xdebug trace (like
strpos, etc), the PDO calls seem to take up more time (not sure why).
I'll have a closer look at the xdebug / qcachegrind output later.
Will be away for two weeks, so don't expect a followup soonish.

Regards,
Michael

--
Why is it that all of the instruments seeking intelligent life in the
universe are pointed away from Earth?

Evert Pot

unread,
Jun 24, 2016, 3:42:54 PM6/24/16
to SabreDAV Discussion


On Friday, June 24, 2016 at 3:18:32 PM UTC-4, mbiebl wrote:
2016-06-24 21:12 GMT+02:00 Evert Pot <ever...@gmail.com>:
>
> On Friday, June 24, 2016 at 12:22:48 PM UTC-4, mbiebl wrote:
>>
>> Hi,
>>
>> I've run some homegrown benchmarks (creating 1000 contacts, reading 1000
>> contacts, deleteing 1000 contacts) against v2.0.9 and v3.1.4.
>>
>> It seem v2 is quite a bit faster, e.g. for a retrieving 100 cards I have

I meant 1000 cards here, not 100.

>> 229s v 114s, when running under xdebug, without xdebug v2 is about 30-50%
>> faster.
>>
>> There seems to be quite a bit of overhead in v3
>>
>> Can anyone confirm these findings?
>>
>
> This would be a perfect case for blackfire.io, if you're willing to post it
> there!

I don't know blackfire.io, but I will have a look. Thanks for the hint.

I think you can pretty much upload your cachegrind profiles here. It's kcachegrind as a service with diffs between changes.
 

> I think the difference might largely due to the fact that we're now parsing
> vcards when reading them to see if we need to convert to a different vcard
> version.
> I had some ideas to short-cut this by just looking for the string
> VERSION:*.x in the first few bytes, but it would be great to see (based on
> blackfire) if that hunch
> is actually correct and will improve performance.

I see a lot more string handling calls in the xdebug trace (like
strpos, etc), the PDO calls seem to take up more time (not sure why).
I'll have a closer look at the xdebug / qcachegrind output later.
Will be away for two weeks, so don't expect a followup soonish.
 
It sounds like that could be related to vcard parsing ;) Might also be some sabre/xml stuff whcih has changed between versions.

Evert
Reply all
Reply to author
Forward
0 new messages