rn-blockmonitor
Version:
block monitor
1 lines • 4.67 kB
JavaScript
Object.defineProperty(exports,"__esModule",{value:true});exports.BMLinkList=undefined;var _houseMiddlewareSdk=require('house-middleware-sdk');var _houseMiddlewareSdk2=_interopRequireDefault(_houseMiddlewareSdk);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj};}function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function");}}var Node=function Node(val){_classCallCheck(this,Node);this.value=val;this.next=null;};var BMLinkList=exports.BMLinkList=function BMLinkList(node){_classCallCheck(this,BMLinkList);_initialiseProps.call(this);this.head=null;this.length=0;this.maxStackSize=50;this.showLocalConsoleLogByTimeInterval=50;};var _initialiseProps=function _initialiseProps(){var _this=this;this.push=function(value){var node=new Node(value);if(_this.head==null){_this.head=node;}else{var current=_this.head;while(current.next!=null){current=current.next;}current.next=node;}_this.length++;if(_this.length>=_this.maxStackSize){_this.head=_this.head.next;_this.length--;}};this.insertAfter=function(value,item){var node=new Node(value);var current=_this.find(item);if(current==null){return;}node.next=current.next;current.next=node;_this.length++;};this.remove=function(value){var current=_this.find(value);if(!current){return;}var previous=_this.findPrevious(value);if(!previous){_this.head=current.next;}else{previous.next=current.next;}_this.length--;};this.removeAt=function(pos){if(pos>-1&&pos<_this.length){var current=_this.head;var index=0;if(pos===0){_this.head=current.next;}else{while(index<pos){var previous=current;current=current.next;index++;}previous.next=current.next;}_this.length--;}else{return null;}};this.find=function(value){var currentNode=_this.head;if(currentNode==null){return null;}if(currentNode.value===value){return currentNode;}while(currentNode.next){currentNode=currentNode.next;if(currentNode.value===value){return currentNode;}}return null;};this.findPrevious=function(value){var current=_this.head;if(current==null){return null;}if(current.value===value){return null;}while(current.next){if(current.next.value===value){return current;}current=current.next;}return null;};this.indexof=function(value){var current=_this.head;var index=0;if(current==null){return null;}while(current){if(current.value===value){return index;}index++;current=current.next;}return-1;};this.size=function(){return _this.length;};this.setMaxStackSize=function(len){if(len>0)_this.maxStackSize=len;};this.setShowLocalConsoleLogByTimeInterval=function(time){if(time>0)_this.showLocalConsoleLogByTimeInterval=time;};this.clear=function(){_this.head=null;_this.length=0;};this.alignIndex=function(index){return(Array(3).join('0')+index).slice(-3);};this.getUploadData=function(busyTime,lastInterval,now,thresholdInterval){var dicArr=[];var current=_this.head;var index=0;while(current!=null){var curDic=current.value;var curTimeStamp=curDic.timeStamp;if(lastInterval<=curTimeStamp&&curTimeStamp<=now){var packDic={};packDic.stackIndex=_this.alignIndex(index);packDic.timeStamp=curTimeStamp;packDic.stackName=curDic.stackName;dicArr.push(packDic);}current=current.next;index++;}if(dicArr.length){dicArr.reverse();console.log('BlockMonitor','↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓');console.log('BlockMonitor','Captured Block: '+busyTime+'ms,InsertTime:'+lastInterval+',ExpectedExecutionTime:'+(lastInterval+thresholdInterval/2)+',ExecutionTime:'+now+',stackNum:'+_this.length+',stackDetailBelow:');var preTime=0;var jsonArr=[];dicArr.map(function(curDic,i){jsonArr.push(curDic);var curTime=curDic.timeStamp;var intervalBetweenStack=0;if(preTime===0){preTime=curTime;}else{intervalBetweenStack=preTime-curTime;preTime=curTime;}console.log('BlockMonitor',''+JSON.stringify(curDic));if(intervalBetweenStack>=_this.showLocalConsoleLogByTimeInterval){console.log('BlockMonitor','************timeout Index:'+_this.alignIndex(curDic.stackIndex)+'-'+_this.alignIndex(parseInt(curDic.stackIndex)+1)+'****time-consuming:'+intervalBetweenStack+'*************');}});console.log('BlockMonitor','↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑↑');var upData=jsonArr;return upData;}return null;};};