[Laszlo-dev] For Review: Change 20081021-Philip-6. Summary: Iterate over arrays with for "for (var a=0; a<b.length; a++)"

P T Withington ptw at pobox.com
Tue Oct 21 12:11:10 PDT 2008


The profiler is using a terrible trick of recording a clock tick and a  
function name 'efficiently' by using the clock tick as a key and the  
function as a value.  It might be just as, or more efficient, to  
simply record both in an array where the even index is the clock tick  
and the odd index is the function.

This bug wouldn't be relevant if the buffers were Dictionary's.  Max  
made them Array's to work around IE's poor GC performance with objects.

On 2008-10-21, at 15:04EDT, André Bargull wrote:

> IMO it's bad to use l because of 1, I'd suggest to use "len" instead.
>
> LzProfile.lzs still needs to be fixed (it iterates over its buffers  
> with a for-in loop). There was something special about the profiler,  
> you've explained it to me once, but I don't know whether it's still  
> valid in respect to your recent changes.
>
>> May I suggest that for efficiency (because most compiler's can't  
>> tell  if the length of an array might be changed by an iteration)  
>> that we  use the idiom:
>>
>>   for (var i = 0, l = b.length; i < l; i++)
>>
>> ?  (I.e., cache the length of the array for the while test.)
>>
>> Otherwise, approved.
>>
>> On 2008-10-21, at 14:36EDT, Philip Romanik wrote:
>>
>> >/ Change 20081021-Philip-6 by Philip at Philip-DC <http://www.openlaszlo.org/mailman/listinfo/laszlo-dev 
>> > on 2008-10-21 08:49:47  />/ EDT
>> />/    in /cygdrive/f/laszlo/svn/src/svn/openlaszlo/trunk
>> />/    for http://svn.openlaszlo.org/openlaszlo/trunk
>> />/
>> />/ Summary: Iterate over arrays with for "for (var a=0;  
>> a<b.length; a++)"
>> />/
>> />/ New Features:
>> />/
>> />/ Bugs Fixed: LPP-7048, LPP-4435
>> />/
>> />/ Technical Reviewer: ptw
>> />/ QA Reviewer: (pending)
>> />/ Doc Reviewer: (pending)
>> />/
>> />/ Documentation:
>> />/
>> />/ Release Notes:
>> />/
>> />/ Details:
>> />/ To prevent issues with applications who extend Array (like  />/  
>> Prototype), the use of "for(a in b)" is replaced with "for (var  
>> a=0;  />/ a<b.length; a++)".
>> />/
>> />/
>> />/ Tests:
>> />/ I made sure that the affected files work properly by  
>> exercising  />/ their related tests in swf/dhtml:
>> />/
>> />/ http://localhost:8080/trunk/lps/components/incubator/test/opttree/test.lzx
>> />/ http://localhost:8080/trunk/test/lztest/lztest-animator.lzx
>> />/ http://localhost:8080/trunk/test/rpc/javarpc/simple.lzx
>> />/ http://localhost:8080/trunk/test/rpc/xmlrpc/advogato.lzx
>> />/ http://localhost:8080/trunk/lps/components/utils/diagnostic/inspector/inspector-example.lzx
>> />/ http://localhost:8080/trunk/test/explicit-replicators/lazy-replicator.lzx
>> />/ http://localhost:8080/trunk/test/explicit-replicators/test-replicator.lzx
>> />/ http://localhost:8080/trunk/test/history/history.lzx
>> />/
>> />/
>> />/ Files:
>> />/ M      lps/components/rpc/rpc.lzx
>> />/ M      lps/components/rpc/xmlrpc.lzx
>> />/ M      lps/components/lztest/lztestmanager.lzx
>> />/ M      lps/components/incubator/opttree/opttree.lzx
>> />/ M      lps/components/utils/diagnostic/inspector/inspector.lzx
>> />/ M      lps/components/utils/replicator/lazyreplicator.lzx
>> />/ M      lps/components/utils/replicator/replicator.lzx
>> />/ M      lps/includes/source/lzhistory.js
>> />/
>> />/ Changeset: http://svn.openlaszlo.org/openlaszlo/patches/20081021-Philip-6.tar
>> />/
>> /
>>
>




More information about the Laszlo-dev mailing list