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