Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有一种方法可以检查javascript以毫秒为单位执行函数所需的时间?_Javascript_Jquery - Fatal编程技术网

是否有一种方法可以检查javascript以毫秒为单位执行函数所需的时间?

是否有一种方法可以检查javascript以毫秒为单位执行函数所需的时间?,javascript,jquery,Javascript,Jquery,我有如下代码: oTable = $('#dataTable').dataTable({ "sScrollX": "100%", "bScrollCollapse": true, iDisplayLength: -1, aLengthMenu: [[-1, 25, 50, 200, "All"], [10, 25, 50, 200, "All"]], aoColumnDefs: [ { "sSortDataType":"dom-data-r

我有如下代码:

oTable = $('#dataTable').dataTable({
    "sScrollX": "100%",
    "bScrollCollapse": true,
    iDisplayLength: -1,
    aLengthMenu: [[-1, 25, 50, 200, "All"], [10, 25, 50, 200, "All"]],
    aoColumnDefs: [
        { "sSortDataType":"dom-data-rk", "aTargets": ["sort-data-rk"] },
        { "sType": "date-uk", "aTargets": ["sort-date-uk"] },
        { "sType": "datetime-uk", "aTargets": ["sort-datetime-uk"] }
    ]
});

是否有一种方法可以确定使用javascript或jQuery执行此代码所需的时间。类似于C#?

中的秒表方法,您可以使用控制台时间来验证它需要多长时间

console.time('profile');

for ( var i=0; i < 100000; i++) {
   var arr = new Array();
}

var time = console.timeEnd('profile');
console.time('profile');
对于(变量i=0;i<100000;i++){
var arr=新数组();
}
var time=console.timeEnd('profile');
可变时间的结果以毫秒为单位 例子:

适用于所有浏览器

var one=new Date();
for ( var i=0; i < 100000; i++) {
  var arr = new Array();
}
var two=new Date();

//Calculate difference btw the two dates
alert(two.getMilliseconds()-one.getMilliseconds());
var one=新日期();
对于(变量i=0;i<100000;i++){
var arr=新数组();
}
var two=新日期();
//根据这两个日期计算差异
警报(两个.getmillizes()-一个.getmillizes());

我在JSFIDLE中添加了这个解决方案,您可以使用控制台时间来验证它需要多长时间

console.time('profile');

for ( var i=0; i < 100000; i++) {
   var arr = new Array();
}

var time = console.timeEnd('profile');
console.time('profile');
对于(变量i=0;i<100000;i++){
var arr=新数组();
}
var time=console.timeEnd('profile');
可变时间的结果以毫秒为单位 例子:

适用于所有浏览器

var one=new Date();
for ( var i=0; i < 100000; i++) {
  var arr = new Array();
}
var two=new Date();

//Calculate difference btw the two dates
alert(two.getMilliseconds()-one.getMilliseconds());
var one=新日期();
对于(变量i=0;i<100000;i++){
var arr=新数组();
}
var two=新日期();
//根据这两个日期计算差异
警报(两个.getmillizes()-一个.getmillizes());

我在JSFIDLE中添加了这个解决方案,有日期对象吗

var t = new Date;
//some processing here


console.log( new Date - t ); 

有日期对象吗

var t = new Date;
//some processing here


console.log( new Date - t ); 

对于IE,你需要使用这样的东西

 var start = new Date().getTime();

    oTable = $('#dataTable').dataTable({
     "sScrollX": "100%",
     "bScrollCollapse": true,
     iDisplayLength: -1,
     aLengthMenu: [[-1, 25, 50, 200, "All"], [10, 25, 50, 200, "All"]],
     aoColumnDefs: [
        { "sSortDataType":"dom-data-rk", "aTargets": ["sort-data-rk"] },
        { "sType": "date-uk", "aTargets": ["sort-date-uk"] },
        { "sType": "datetime-uk", "aTargets": ["sort-datetime-uk"] }
     ]
    });

    var end = new Date().getTime();
    var time = end - start;
    alert('Execution time: ' + time);

对于IE,你需要使用这样的东西

 var start = new Date().getTime();

    oTable = $('#dataTable').dataTable({
     "sScrollX": "100%",
     "bScrollCollapse": true,
     iDisplayLength: -1,
     aLengthMenu: [[-1, 25, 50, 200, "All"], [10, 25, 50, 200, "All"]],
     aoColumnDefs: [
        { "sSortDataType":"dom-data-rk", "aTargets": ["sort-data-rk"] },
        { "sType": "date-uk", "aTargets": ["sort-date-uk"] },
        { "sType": "datetime-uk", "aTargets": ["sort-datetime-uk"] }
     ]
    });

    var end = new Date().getTime();
    var time = end - start;
    alert('Execution time: ' + time);
试试这个:

var start = new Date();
var startTime = start.getTime();

// do whatever you want, your code

var end = new Date();
var endTime= end.getTime();
var timeTaken = end - start;
alert('Execution time is : ' + timeTaken);
试试这个:

var start = new Date();
var startTime = start.getTime();

// do whatever you want, your code

var end = new Date();
var endTime= end.getTime();
var timeTaken = end - start;
alert('Execution time is : ' + timeTaken);

下面是C#Stopwatch关键功能的实现。在可用的情况下,它使用新函数——比getTime()更精确

var Stopwatch = function () {
    var startTime;
    var hasPerformance = window.performance && window.performance.webkitNow;

    return {
        start: function () {
            startTime = hasPerformance ? window.performance.webkitNow() : new Date().getTime();
        },
        end: function () {
            this.elapsed = (hasPerformance ? window.performance.webkitNow() : new Date().getTime()) - startTime;
        },
        elapsed: 0
    };
}
用法:

var myStopwatch = Stopwatch();
myStopwatch.start();
/* code you want to time goes here */
myStopwatch.end()
alert("It took " + stopwatch.elapsed + " milliseconds!");

下面是C#Stopwatch关键功能的实现。在可用的情况下,它使用新函数——比getTime()更精确

var Stopwatch = function () {
    var startTime;
    var hasPerformance = window.performance && window.performance.webkitNow;

    return {
        start: function () {
            startTime = hasPerformance ? window.performance.webkitNow() : new Date().getTime();
        },
        end: function () {
            this.elapsed = (hasPerformance ? window.performance.webkitNow() : new Date().getTime()) - startTime;
        },
        elapsed: 0
    };
}
用法:

var myStopwatch = Stopwatch();
myStopwatch.start();
/* code you want to time goes here */
myStopwatch.end()
alert("It took " + stopwatch.elapsed + " milliseconds!");

内置的JS计时器根本就不能提供很好的准确性

我喜欢DynatraceAJAX版本。这是一个IE插件,提供了非常好的时间


内置JS计时器根本不能提供良好的精度

我喜欢DynatraceAJAX版本。这是一个IE插件,提供了非常好的时间


它不是异步的,所以只需获取函数前后的时间并进行比较即可!可能不是,因为它取决于浏览器,部分取决于正在使用的硬件。现在是浏览器时间来呈现我想要计时的javascript。它不是异步的,所以只需获取函数前后的时间并进行比较!可能不会,因为它取决于浏览器,部分取决于正在使用的硬件。现在是浏览器渲染javascript的时候了,我想计时。对不起,你能解释更多吗?我有javascript函数中的代码。一旦我知道了这个数字,我将使用jQuery将这一次添加到我的页面的评论区域。@Nygma,是时间(我们从控制台获得的)是毫秒吗?对不起,控制台。firebug可以使用时间,它在firefox中工作,即不知道什么是控制台。是的,Mohit时间是毫秒GetTime(),而不是GetMillicles()。GetMillicles返回当前时间的毫秒部分(例如,从13:12:34.231开始的231)。对不起,您能解释更多吗?我有javascript函数中的代码。一旦我知道了这个数字,我将使用jQuery将这一次添加到我的页面的评论区域。@Nygma,是时间(我们从控制台获得的)是毫秒吗?对不起,控制台。firebug可以使用时间,它在firefox中工作,即不知道什么是控制台。是的,Mohit时间是毫秒GetTime(),而不是GetMillicles()。GetMillicles返回当前时间的毫秒部分(例如,从13:12:34.231开始的231)AFAIK,performance.now()在当前版本的任何浏览器中都不可用,但performance.webkitNow()在Chrome.AFAIK中工作,performance.now()在当前版本的任何浏览器中都不可用,但performance.webkitNow()在当前版本中不可用在铬上工作。