Quantcast
Channel: Adobe Community : Popular Discussions - Photoshop Scripting
Viewing all articles
Browse latest Browse all 12244

Getting different time duration in executing same code on same layer!

$
0
0

Hi all,

 

I wrote a function to get the selected layers. I want to log the time duration of the execution of this function. So I write as follows,

 

function getSelectedLayers()
{    var selectedLayers;        try    {        var doc = app.activeDocument;        selectedLayers   = new Array();        var isBackGroundPresent;            try        {            isBackGroundPresent = doc.backgroundLayer;        }        catch(e)        {            isBackGroundPresent = false;        }            var layerRef = new ActionReference();        layerRef.putEnumerated(app.charIDToTypeID("Dcmn"), app.charIDToTypeID("Ordn"), app.charIDToTypeID("Trgt"));        var layerDesc = app.executeActionGet(layerRef);        var listOfSlctedLyr;        if(layerDesc.hasKey(app.stringIDToTypeID('targetLayers')))        {            listOfSlctedLyr = layerDesc.getList(app.stringIDToTypeID('targetLayers'));            var noOfSlctedLayer = listOfSlctedLyr.count;            for(var i=0; i < noOfSlctedLayer; i++)            {                if(isBackGroundPresent)                    selectedLayers.push(listOfSlctedLyr.getReference(i).getIndex());                else                    selectedLayers.push(listOfSlctedLyr.getReference(i).getIndex()+1);            }        }        else        {            layerRef = new ActionReference();            layerRef.putProperty(app.charIDToTypeID("Prpr"), app.charIDToTypeID("ItmI"));            layerRef.putEnumerated(app.charIDToTypeID("Lyr "), app.charIDToTypeID("Ordn"), app.charIDToTypeID("Trgt"));            if(isBackGroundPresent)                selectedLayers.push(app.executeActionGet(layerRef).getInteger(app.charIDToTypeID("ItmI"))-1);            else                selectedLayers.push(app.executeActionGet(layerRef).getInteger(app.charIDToTypeID("ItmI")));                var layerVisibility = doc.activeLayer.visible;            if(layerVisibility == true)                doc.activeLayer.visible = false;                layerDesc = new ActionDescriptor();            listOfSlctedLyr = new ActionList();            layerRef = new ActionReference();            layerRef.putEnumerated(app.charIDToTypeID('Lyr '), app.charIDToTypeID('Ordn'), app.charIDToTypeID('Trgt'));            listOfSlctedLyr.putReference(layerRef);            layerDesc.putList(app.charIDToTypeID('null'), listOfSlctedLyr);            app.executeAction(app.charIDToTypeID('Shw '), layerDesc, DialogModes.NO);                if(doc.activeLayer.visible == false)                selectedLayers.shift();                doc.activeLayer.visible = layerVisibility;        }    }    catch(e)    {        selectedLayers =  null;    }    return selectedLayers;
}

var sTime = new Date().getTime();
var sourceItem = getSelectedLayers();
var eTime = new Date().getTime();
$.writeln (((eTime - sTime)/1000) + " sec");

 

Every time, I see different time duration ranging from 0.177 sec to 0.450.

I don't understand why it behaves like this? Shouldn't the value be same every time or approximate?

What could be the reason of such difference?

 

Thanks


Viewing all articles
Browse latest Browse all 12244

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>