是否有一种方法可以检查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()在当前版本中不可用在铬上工作。