Lỗi mắc phải làm giảm hiệu năng khi xử lý dữ liệu
1. Chạy vòng lặp qua một mảng
Chúng ta thử xem thời gian tiêu tốn cho việc lặp qua 10.000 phần tử trong mảng
-
for
: ~10 microseconds -
while
: ~11 microseconds -
forEach
: ~77 microseconds -
for-of
: ~110 microseconds -
reduce
: ~113 microseconds
Nếu muốn tính tổng của một array thì sử dụng reduce
là rõ ràng, tuy nhiên cái giá phải trả quá lớn. Vòng lặp mới nhất từ
ES6 for-of
cũng về áp chót. Như vậy cứ xài vòng for
kinh điển, tuy cũ mà nhanh gấp 10 lần cái for-of
2. Duplicate một mảng
Chúng ta hãy xem kết quả tất cả các cách chúng ta có thể dùng để duplicate một array
-
[].concat(arr)
: ~366 microseconds -
arr.slice()
: ~367 microseconds -
arr.map(x => x)
: ~469 microseconds -
[...arr]
: ~512 microseconds -
Array.from(arr)
: ~1,436 microseconds
Như vậy 2 phương thức cũ như dưa mắm concat
và slice
vẫn dành chiến thắng, kiểu spread operation mới ES6 vẫn top cuối.
3. Lặp qua một object
-
for(let key in obj)
: ~240 microseconds -
Object.keys(obj)
sau đó forEach : ~294 microseconds -
Object.entries(obj)
sau đó for-of : ~535 microseconds
Ở hai cách làm bên dưới, do phải tạo thêm một mảng chứa key, rồi mới loop qua mảng này object nên nó chậm.
Tài liệu TíT tham khảo từ trang 👇👇👇
https://hackernoon.com/3-javascript-performance-mistakes-you-should-stop-doing-ebf84b9de951