tôi đo thời gian thực hiện hai chức năng:JQuery grep (...) VS lọc tự nhiên JavaScript (...) thực hiện chức năng
Việc thực hiện các phương pháp sau đã được đo bằng công cụ Hồ sơ trên Chrome:
// jQuery GREP function
function alternative1(words, wordToTest) {
return $.grep(words, function(word) {
return wordToTest.indexOf(word) != -1;
});
}
// Native javascript FILTER function
function alternative2(words, wordToTest) {
return words.filter(function(word) {
return wordToTest.indexOf(word) != -1;
});
}
Mảng words
được tạo từ 1 triệu chuỗi được tạo ngẫu nhiên. Mỗi phương pháp được chạy 20 lần. Về sự ngạc nhiên của tôi jQuery
chức năng grep nhanh hơn.
lần Execution (20 hành):
Bạn có thể repeate measurings trên jsFidle này - nó sẽ mất một thời gian để thực hiện vì vậy hãy kiên nhẫn.
Có giải thích tại sao chức năng jQuery grep nhanh hơn không native JavaScript filter hoạt động?
PS: Câu hỏi này được lấy cảm hứng từ số answer này.
Tìm kiếm giải thích? Hãy thử xem [** việc triển khai grep **] (https://github.com/jquery/jquery/blob/master/src/core.js#L712).Để kiểm tra hiệu suất, hãy sử dụng [** JSPerf **] (http://jsperf.com/) thay vì tạo tập lệnh có thể đóng băng trình duyệt. – Joseph
Tôi đặt nó vào [** một bộ thử nghiệm trong jsPerf **] (http://jsperf.com/filterings). Mặc dù vậy, tôi đã giảm nó xuống thành phần '100 000', thậm chí' 1 000' là tốt cho số – Alexander
@JosephtheDreamer cảm ơn lời khuyên. – PrimosK