- vừa được xem lúc

🚀 𝐅𝐫𝐨𝐧𝐭𝐞𝐧𝐝 𝐏𝐞𝐫𝐟𝐨𝐫𝐦𝐚𝐧𝐜𝐞 - Tối ưu JavaScript (Phần 1)

0 0 8

Người đăng: Phạm Đình Thiện

Theo Viblo Asia

Hello anh em! Hãy cùng mình khám phá những phương pháp mà mình đã áp dụng để tối ưu hóa JavaScript ngay dưới đây nhé.

1. Giảm số vòng lặp lồng nhau (Nested Loop)

Nested Loop (vòng lặp lồng nhau) có thể là cơn ác mộng về hiệu suất, đặc biệt là với các tập dữ liệu lớn. Hãy cố gắng giảm số lượng vòng lặp.

Ví dụ nhanh 1 bài toán: Tìm đơn vị mà nhân viên thuộc về.

Ta có 2 cách áp dụng:

  1. Nested Loop: Độ phức tạp O(n^2).
  2. Object Mapping: Độ phức tạp O(n).

Object Mapping tạo ra một object ánh xạ từ ID đơn vị đến tên của đơn vị, cho phép anh em tìm nhanh đơn vị cho mỗi nhân viên với độ phức tạp O(1).

image.png

Object Mapping

2. Loại bỏ giá trị trùng lặp trong Array

So sánh hiệu năng 2 cách để loại bỏ giá trị trùng lặp trong Array:

  1. Filter.
  2. Set.

Set có hiệu suất nhanh hơn Filter. Bởi việc tìm kiếm giá trị trong Set thường có độ phức tạp là 𝗢(𝟭), trong khi tìm kiếm trong Array bằng indexOf có thể là 𝗢(𝗻) trong trường hợp tệ nhất. image.png

Set vs Filter

3. Loại bỏ thuộc tính trước khi JSON.stringify

So sánh hiệu năng 2 cách để loại bỏ thuộc tính trước khi JSON.stringify:

  1. Delete Property: Loại bỏ thuộc tính bằng cách sử dụng toán tử delete.
  2. Assign Undefined Value: Gán giá trị undefined cho thuộc tính.

Anh em có thể thấy, cách 2 cho hiệu suất tốt hơn, nhanh gấp khoảng 3 lần so với cách đầu tiên. image.png

JSON.stringify

Kết

Rất cảm ơn anh em đã đọc bài viết. Hi vọng bài viết sẽ giúp ích cho anh em và đừng quên đón chờ những bài viết tiếp theo của mình nha.

Anh em hãy kết nối với mình qua linkedin để có nhiều bài viết hay khác nhé: www.linkedin.com/in/pdthien

Bình luận

Bài viết tương tự

- vừa được xem lúc

Giới thiệu Typescript - Sự khác nhau giữa Typescript và Javascript

Typescript là gì. TypeScript là một ngôn ngữ giúp cung cấp quy mô lớn hơn so với JavaScript.

0 0 528

- vừa được xem lúc

Bạn đã biết các tips này khi làm việc với chuỗi trong JavaScript chưa ?

Hi xin chào các bạn, tiếp tục chuỗi chủ đề về cái thằng JavaScript này, hôm nay mình sẽ giới thiệu cho các bạn một số thủ thuật hay ho khi làm việc với chuỗi trong JavaScript có thể bạn đã hoặc chưa từng dùng. Cụ thể như nào thì hãy cùng mình tìm hiểu trong bài viết này nhé (go).

0 0 436

- vừa được xem lúc

Một số phương thức với object trong Javascript

Trong Javascript có hỗ trợ các loại dữ liệu cơ bản là giống với hầu hết những ngôn ngữ lập trình khác. Bài viết này mình sẽ giới thiệu về Object và một số phương thức thường dùng với nó.

0 0 158

- vừa được xem lúc

Tìm hiểu về thư viện axios

Giới thiệu. Axios là gì? Axios là một thư viện HTTP Client dựa trên Promise.

0 0 149

- vừa được xem lúc

Imports và Exports trong JavaScript ES6

. Giới thiệu. ES6 cung cấp cho chúng ta import (nhập), export (xuất) các functions, biến từ module này sang module khác và sử dụng nó trong các file khác.

0 0 113

- vừa được xem lúc

Bài toán đọc số thành chữ (phần 2) - Hoàn chỉnh chương trình dưới 100 dòng code

Tiếp tục bài viết còn dang dở ở phần trước Phân tích bài toán đọc số thành chữ (phần 1) - Phân tích đề và những mảnh ghép đầu tiên. Bạn nào chưa đọc thì có thể xem ở link trên trước nhé.

0 0 249