方法性能分析器--装饰者模式应用
生活随笔
收集整理的這篇文章主要介紹了
方法性能分析器--装饰者模式应用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<!DOCTYPE html>
<html>
<head><title>方法性能分析器</title><meta charset="utf-8">
</head>
<body>
<div id="list-container"></div><script>function $(id){return document.getElementById(id);}
</script>
<script>// ListBuilder class.var ListBuilder = function (parent, listLength) {this.parent = $(parent);this.listLength = listLength;};ListBuilder.prototype = {buildList: function (container) {var list = document.createElement('ul');list.setAttribute('id', container);this.parent.appendChild(list);var len = this.listLength;while (len) {var item = document.createElement('li');list.appendChild(item);--len;}},removeLists: function(id){var ele = $(id);ele.parentNode.removeChild(ele);}};// SimpleProfiler class.var SimpleProfiler = function (component) {this.component = component;};SimpleProfiler.prototype = {buildList: function () {var startTime = (new Date()).getTime();this.component.buildList();var elapsedTime = (new Date()).getTime() - startTime;console.log('buildList:' + elapsedTime + ' ms');}};
/*var list = new ListBuilder('list-container', 5000);list = new SimpleProfiler(list);list.buildList();
*/// 通用化改造// MethodProfiler class.var MethodProfiler = function (component) {this.component = component;this.timers = {};for (var key in this.component) {// Ensure that the property is a functionif (typeof this.component[key] !== 'function') {continue;}// Add the methodvar that = this;(function (methodName) {that[methodName] = function () {that.startTimer(methodName);var returnValue = that.component[methodName].apply(that.component, arguments);that.displayTime(methodName, that.getElapsedTime(methodName));return returnValue;};})(key);}};MethodProfiler.prototype = {startTimer: function (methodName) {this.timers[methodName] = (new Date()).getTime();},getElapsedTime: function (methodName) {return (new Date()).getTime() - this.timers[methodName];},displayTime: function (methodName, time) {console.log(methodName + ': ' + time + ' ms');}};var list = new ListBuilder('list-container', 5000);list = new MethodProfiler(list);list.buildList('ol');list.buildList('ul');list.removeLists('ul');list.removeLists('ol');
</script>
</body>
</html>
?
?
轉載于:https://www.cnblogs.com/webFrontDev/archive/2013/03/24/2978517.html
總結
以上是生活随笔為你收集整理的方法性能分析器--装饰者模式应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysqldump造成Buffer Po
- 下一篇: 初学 Unsupervised feat