[FX.php List] Showing last related record - sort in FM or just
PHP?
DC
dan.cynosure at dbmscan.com
Tue Oct 17 14:50:32 MDT 2006
here's some code that should get you started timing things accurately
(note - if you are using PHP5 then you don't need the microtime_float
() function provided here - you should remove or rename it since it
will cause errors):
<?php
$time_start = microtime_float();
// put the thing you want to time here
// here we just sleep for two seconds
sleep(2);
$time_end = microtime_float();
$time = $time_end - $time_start;
echo $time;
// replicates PHP5 function
function microtime_float() {
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
?>
On Oct 17, 2006, at 4:41 PM, Joel Shapiro wrote:
> Hi Dan
>
> I'd be happy to do it. Any good ways to do a real time test
> (other than counting one one thousand two one thousand... ;) ?
>
> -Joel
>
>
> On Oct 17, 2006, at 1:31 PM, DC wrote:
>
>> hi joel,
>>
>> since you have your testing architecture set up already i'd love
>> it if you would take your testing one step further and enlighten
>> us all about this issue since we all seem to be guessing and
>> thumbnailing it and it would be cool to know exactly what the
>> tradeoffs are when you give certain jobs to FMP:
>>
>> speed comparison between an unstored calc field that plucks off
>> the 'last' record from a relationship and sending related records
>> back through FX.php's XML processing. the test would have to be
>> made with a range of different related record numbers starting at
>> 1 related records and maybe going up to 1000.
>>
>> my assumption is that unstored calc field will be slightly slower
>> when there aren't too many related records, but with many related
>> records, the overhead of processing them in WPE and XML will start
>> to get slow.
>>
>> my question is at what number of related records does the XML
>> processing go slower than the unstored related calc field?
>>
>> thanks!
>> dan
>>
>> On Oct 17, 2006, at 4:22 PM, Joel Shapiro wrote:
>>
>>> Thanks Dale
>>>
>>> I didn't know about end(), so that's great.
>>>
>>> In quick testing on my local development machine (running FMSA as
>>> well as FMP and everything else), I couldn't see any real time
>>> difference between FM's sending up to 1000 related records (just
>>> for testing) sorted vs. unsorted -- for 4 parent records
>>> returned. I had thought it'd be slower for FM to sort before
>>> sending, but it seems negligible. (And I will sort the
>>> relationship -- or even just the portal(?) -- just to catch any
>>> out-of-order entries, as Steve warned of.)
>>>
>>> Thanks all!
>>>
>>> -Joel
>>>
>>>
>>> On Oct 16, 2006, at 6:15 PM, Dale Bengston wrote:
>>>
>>>> Hi Joel,
>>>>
>>>> Well, if your relationship is sorted last-to-first, it will be
>>>> element 0 of the related field array, so you can just reference
>>>> that explicitly:
>>>>
>>>> echo $value['relationship::myField'][0];
>>>>
>>>> If your relationship is not sorted, you can easily find the last
>>>> element with the PHP end function:
>>>>
>>>> echo end($value['relationship::myField']);
>>>>
>>>> I like to use PHP to do as much of the work as possible. No
>>>> unstored calc fields necessary here.
>>>>
>>>> Dale
>>>>
>>>> On Oct 16, 2006, at 7:31 PM, Joel Shapiro wrote:
>>>>
>>>>> Great. Thanks Steve!
>>>>>
>>>>> I'll plan on returning all related records (by default) and
>>>>> then sorting in php to display only the one I want.
>>>>>
>>>>> Best,
>>>>> -Joel
>>>>>
>>>>>
>>>>> On Oct 16, 2006, at 5:16 PM, Steve Winter wrote:
>>>>>
>>>>>> Hi Joel,
>>>>>>
>>>>>>>> my best advice, sort in fmp in the relationship definition.
>>>>>>>
>>>>>>> but if the WPE will spit back *all* related records regardless,
>>>>>>> wouldn't it be faster to have FM return all the data unsorted
>>>>>>> and do
>>>>>>> the sorting within PHP?
>>>>>>
>>>>>> Probably... if you were actually going to do some form of
>>>>>> sort, then it
>>>>>> would most likely be quicker to do it in php. If it was a sort
>>>>>> order
>>>>>> applied to the relationship I don't think it will make any
>>>>>> difference...
>>>>>>
>>>>>>>> if you want to get really trick and you are sure you only ever
>>>>>>>> need one (most recent) record you can make a calc field that
>>>>>>>> just
>>>>>>>> returns the last record. that way PHP doesn't have to
>>>>>>>> transform a
>>>>>>>> bunch of XML data that you'll never use.
>>>>>>>
>>>>>>> I've heard it's optimal to not have calc fields on the web
>>>>>>> layout if
>>>>>>> possible (for speed), but do you think that in this case it
>>>>>>> could
>>>>>>> still be faster than returning all related records?
>>>>>>
>>>>>> Personally I think this would be the slowest option... unstored
>>>>>> calculation fields are going to be slower for the wpe to
>>>>>> process than all
>>>>>> of the related records (IMHO)
>>>>>>
>>>>>> Cheers
>>>>>> Steve
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> FX.php_List mailing list
>>>>>> FX.php_List at mail.iviking.org
>>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>>
>>>>> _______________________________________________
>>>>> FX.php_List mailing list
>>>>> FX.php_List at mail.iviking.org
>>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>>
>>>> _______________________________________________
>>>> FX.php_List mailing list
>>>> FX.php_List at mail.iviking.org
>>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>>
>>> _______________________________________________
>>> FX.php_List mailing list
>>> FX.php_List at mail.iviking.org
>>> http://www.iviking.org/mailman/listinfo/fx.php_list
>>
>> _______________________________________________
>> FX.php_List mailing list
>> FX.php_List at mail.iviking.org
>> http://www.iviking.org/mailman/listinfo/fx.php_list
>
> _______________________________________________
> FX.php_List mailing list
> FX.php_List at mail.iviking.org
> http://www.iviking.org/mailman/listinfo/fx.php_list
More information about the FX.php_List
mailing list