jsp测试函数的运行速度方法

通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间。而函数运行速度之快,基本上都是毫秒级的。

下面给出的函数就是就此准备的。

// 时间转为时间戳(毫秒)
function time2stamp(){
  var d = new Date();
  return Date.parse(d)+d.getMilliseconds();
}

用法:

var t1 = time2stamp();
// 比较各游览器的DOM运行速度。
var divs = document.getElementByTagName("div");
var t2 = time2stamp();
alert("耗时:" + (t2 - t1) + " 毫秒");

新的方法:

var time1 = new Date
// 比较各游览器的DOM运行速度。
var divs = document.getElementByTagName("div");
alert("耗时:" + (new Date - time1) + " 毫秒");

测试各种循环的效率,for...in这样慢的循环就不测了!

<!doctype html>
<html dir="ltr" lang="zh-CN">
 <head>
  <meta charset="utf-8"/>
  <title>类</title>
  <script type="text/javascript" charset="utf-8">
   window.onload = function(){

    for (var i=0, elm; i<4000; i++) {
     elm = document.createElement("div");
     elm.innerHTML = "第一重div<div>第二重div<div>第三重div</div></div>";
     document.body.appendChild(elm);
    }
    document.getElementById("start-test").onclick = startTest;
    var uuid = 0;
    function startTest() {
     var divs = document.getElementsByTagName("div");

     var time1 = new Date();
     var i = -1, n = divs.length;while (++i < n) {
       divs[i].uuid = uuid++;
     }
     document.getElementById("time-1").innerHTML = new Date() - time1;

     var time2 = new Date();
     var i = divs.length; while (--i >= 0) {
      divs[i].uuid = uuid++;
     }

     document.getElementById("time-2").innerHTML = new Date() - time2;

     var time3 = new Date();
     for (var i=0, n=divs.length; i<n; i++) {
       divs[i].uuid = uuid++;
     }
     document.getElementById("time-3").innerHTML = new Date() - time3;

     var time4 = new Date();
     for (var n = divs.length - 1; n >= 0; n--) {
        divs[n].uuid = uuid++;
      }
     document.getElementById("time-4").innerHTML = new Date() - time4;

     var time5 = new Date();
     for (var n = divs.length - 1; n--;) {
        divs[n].uuid = uuid++;
      }
     document.getElementById("time-5").innerHTML = new Date() - time5;

     var time6 = new Date();
     var n = divs.length-1; do {
       divs[n].uuid = uuid++;
     } while (n--);
     document.getElementById("time-6").innerHTML = new Date() - time6;

     var time7 = new Date();
     for(var i=0,el;el = divs[i++];){
      el.uuid = uuid++;
     };
     document.getElementById("time-7").innerHTML = new Date() - time7;

    }
   }
  </script>
 </head>
 <body>
  <style>
   h2 {
    margin:0;
    padding:10px;
    font-weight:500;
    font-size:13px;
    background:#8080C0;
    color:#fff;
   }
   p {
    margin:0;
    text-indent:2em;
    border-bottom:2px solid #a9ea00;
    background:#F2F1D7;
   }
   span.red{
    color:red;
   }
  </style>
  <h1>JavaScript loop speed test</h1>
  <ul>
   <li>遍历页面上12000个DIV</li>
  </ul>
  <input id="start-test" type="button" value="Start test">
  <h2>循环1: var i = -1, n = divs.length;while (++i < n) { }<span class="red">顺序</span></h2>
  <p id="time-1"></p>

  <h2>循环2:var n = divs.length; while (--n >= 0) { }<span class="red">倒序</span></h2>
  <p id="time-2"></p>

  <h2>循环3:for (var i=0, n=divs.length; i<n; i++)<span class="red">顺序</span></h2>
  <p id="time-3"></p>

  <h2>循环4:for (var n = divs.length - 1; n >= 0; n--) { }<span class="red">倒序</span></h2>
  <p id="time-4"></p>

  <h2>循环5:for (var n = divs.length - 1; n--;) { }<span class="red">倒序</span></h2>
  <p id="time-5"></p>

  <h2>循环6: var n = divs.length-1; do { } while (n--)<span class="red">倒序</span></h2>
  <p id="time-6"></p>

  <h2>循环7: for(var i=0,el;el = divs[i++];){ } <span class="red">顺序</span></h2>
  <p id="time-7"></p>
 </body>
</html>

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

(0)

相关推荐

  • JavaScript日期时间格式化函数分享

    这个函数经常用到,分享给大家. 函数代码: 复制代码 代码如下: Date.prototype.format = function(format){    var o = {    "M+" : this.getMonth()+1, //month    "d+" : this.getDate(),    //day    "h+" : this.getHours(),   //hour    "m+" : this.getM

  • javascript时间函数大全

    以下是总结的js日期函数大全,供大家参考 1.取得当前时间 复制代码 代码如下: var date=new Date(); 2.已知年.月.日转换成日期型的数据: 复制代码 代码如下: var applyDate = document.domainExceptionForm.applyDate.value; applyDate = applyDate.split("T")[0]; var applyYear = applyDate.split("-")[0]; va

  • js查看一个函数的执行时间实例代码

    具体不多说了,请看下文代码实例讲解 如下有一个求和的函数,我们要知道这个函数执行需要的时间 function add(){ var sum = 0 ; for(var i = 0;i<1000000;i++){ sum += i; } return sum; } 定义一个测试函数,将待测函数作为参数传入 function test(func){ var start = new Date().getTime();//起始时间 func();//执行待测函数 var end = new Date()

  • JavaScript格式化日期时间的方法和自定义格式化函数示例

    很多时候,我们可以利用JavaScript中Date对象的内置方法来格式化,如: 复制代码 代码如下: var d = new Date();console.log(d); // 输出:Mon Nov 04 2013 21:50:33 GMT+0800 (中国标准时间)console.log(d.toDateString()); // 日期字符串,输出:Mon Nov 04 2013console.log(d.toGMTString()); // 格林威治时间,输出:Mon, 04 Nov 20

  • 用js计算页面执行时间的函数

    从别的站看到的一个不错的用js计算页面执行时间,比用asp要好点啊<script language=javascript>  <!--  var startTime,endTime;  var d=new Date();  startTime=d.getTime();  //-->  </script> <script language=javascript>d=new Date();endTime=d.getTime ();document.write((

  • Js 时间间隔计算的函数(间隔天数)

    复制代码 代码如下: function GetDateDiff(startDate,endDate) { var startTime = new Date(Date.parse(startDate.replace(/-/g, "/"))).getTime(); var endTime = new Date(Date.parse(endDate.replace(/-/g, "/"))).getTime(); var dates = Math.abs((startTim

  • jsp测试函数的运行速度方法

    通常我们需要对函数进行优化,一般的做法是开始的时候获得时间,结束的时候再获得一次时间,两次时间相减就能到到花费的时间.而函数运行速度之快,基本上都是毫秒级的. 下面给出的函数就是就此准备的. // 时间转为时间戳(毫秒) function time2stamp(){ var d = new Date(); return Date.parse(d)+d.getMilliseconds(); } 用法: var t1 = time2stamp(); // 比较各游览器的DOM运行速度. var di

  • Spring boot 跳转到jsp页面的实现方法

    本人正在学习Spring boot,搜索了很多关于Spring boot 跳转到jsp页面的实现方法介绍,下面我来记录一下,有需要了解的朋友可参考.希望此文章对各位有所帮助. @Controller注解 1.application.properties文件中配置 # 配置jsp文件的位置,默认位置为:src/main/webapp spring.mvc.view.prefix=/pages/ # 配置jsp文件的后缀 spring.mvc.view.suffix=.jsp 2.Controlle

  • JSP页面跳转方法小结

     实现JSP页面跳转,有如下几种方式: n        使用href超链接标记              (客户端跳转) n        使用JavaScript                             (客户端跳转) n        提交表单                                      (客户端跳转) n        使用response对象                            (客户端跳转) n        使用for

  • JSP验证码简单生成方法

    本文实例讲述了JSP验证码简单生成方法.分享给大家供大家参考.具体如下: <%@ page contentType="image/jpeg" import="java.awt.*,java.awt.image.*,java.util.*,javax.imageio.*" %> <%! Color getRandColor(int fc,int bc){//给定范围获得随机颜色 Random random = new Random(); if(fc&

  • JSP开发之Spring方法注入之替换方法实现

    JSP开发之Spring方法注入之替换方法实现 Spring提供了一种替换方法实现的机制,可以让我们改变某个bean某方法的实现.打个比方我们有一个bean,其中拥有一个add()方法可以用来计算两个整数的和,但这个时候我们想把它的实现逻辑改为如果两个整数的值相同则把它们相乘,否则还是把它们相加,在不改变或者是不能改变源码的情况下我们就可以通过Spring提供的替换方法实现机制来实现这一要求. 替换方法实现机制的核心是MethodReplacer接口,其中定义了一个reimplement ()方

  • Jsp自定义标签和方法详解

    Jsp自定义标签和方法详解 首先是要有一个标签处理类,标签处理类可以直接实现Tag接口,也可以继承Java中已经实现了的TagSupport这个类,TagSupport也是继承自Tag接口的,它内部已经对Tag接口进行了实现,一般是继承TagSupport类,之后是重写父类的doStartTag和doEndTag方法, 对于开始标签来说返回值主要有EVAL_BODY_INCLUDE和SKIP_BODY,前者表示执行标签体,后者表示略过标签体: 对于结束标签的返回值主要有两种EVAL_PAGE和S

  • jsp倒计时简单实现方法

    本文实例讲述了jsp倒计时简单实现方法.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% //当前时间毫秒数 Long current_time1=System.currentTimeMillis(); //结束时间毫秒数 Long end_time2=1337875200000l; //计算时间差 L

  • jsp中变量及方法的声明与使用

    本文实例讲述了jsp中变量及方法的声明与使用.分享给大家供大家参考,具体如下: <%@ page language="java" import="java.util.*" contentType="text/html;charset=GBK"%> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://&q

  • JSP页面跳转方法大全

    先来介绍一下在服务端JSP脚本中跳转页面的几种方法: 1. response.sendRedirct("跳转到页面"); 该方法通过修改HTTP协议的HEADER部分,对浏览器下达重定向指令的,使浏览器显示重定向网页的内容. request无法传值过去. 执行完该页所有代码,然后再跳转到页面. 跳转地址栏改变. 可以跳转到其他服务器上的页面response.sendRedirct('//www.jb51.net'). 2.response.setHeader(); 该方法和respon

  • 分享JSP中文乱码解决方法

    一.JSP页面中文乱码 在JSP页面中,中文显示乱码有两种情况:一种是HTML中的中文乱码,另一种是在JSP中动态输出的中文乱码. 先看一个JSP程序: <%@ page language="java" import="java.util.*" %> <html> <head> <title>中文显示示例</title> </head> <body> 这是一个中文显示示例: <

随机推荐