Tại sao n ++ nhanh hơn n = n + 1? Và cuối cùng là ta nên dùng gì ?

Tại sao n ++ nhanh hơn n = n + 1
Tại sao n ++ nhanh hơn n = n + 1

Tại sao n ++ nhanh hơn n = n + 1? Và cuối cùng là ta nên dùng gì ?

Các mã được tạo ra là hoàn toàn là để xử lí chung một yêu cầu, tuy nhiên vấn đề ở đây chính là hiệu suất.Vậy tại sao ta nên sử dụng n++ :

  1. Tốc độ thực thi sẽ nhanh hơn hoặc bằng so với n = n +1.
  2. Kích thước chữ ngắn ==> mã nhị phân nhỏ hơn hoặc bằng n = n+1.
  3. Mã nguồn của nó cũng nhỏ gọn hơn .
  4. Nhanh hơn n = n + 1 nếu bạn không tối ưu hóa mã của mình.
  5. Quá trình nạp, ghi, tải bộ nhớ nhanh hơn.

Tuy nhiên, có một thứ còn nhanh hơn nữa, đó là ++n.Trong một số trường hợp thông thường thì ++n và n++ chả có gì là khác biệt nhau mấy, nhưng xét trong một số trường hợp như iterator hoặc smart pointer vì n++ trả về giá trị cũ và giá trị đó phải được lưu lại.Còn ++n thì không.

Tóm lại, tập thói quen dùng n++ và ++n đôi khi cũng làm tăng hiệu suất trong mã của bạn.

guest
4 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Khoa

Cũng phải tuỳ theo trường hợp để sử dụng ++n hoặc n++ Theo mình được biết n++ thì nó sẽ cộng vào 1 sau khi lệnh đã thực hiện. Và ++n nó sẽ thực hiện ngay tại lệnh đó. Về việc nó nhanh hơn sau khi xem nguồn. Mình cũng đã có tí phần gọi là hiểu. Để mình bổ sung và ví dụ điển hình trong PHP như sau ở ví dụ trên các bạn sẽ thấy n++ nó sẽ xuất giá trị 0 trong khi đó ++n xuất giá trị 1 Thông thường bắt đầu khởi điểm tăng… Read more »

Thành

Swift ko cho viết n++ hay ++n hay n = n + 1 luôn, cách viết duy nhất là n += 1, thế nên 3 cái kia như nhau :))

Hiep

Về cơ bản n++ và ++n làm dc thứ mà n+=1 và n=n+1 làm dc nhưng ngược lại n+=1 và n=n+1 k làm dc thứ mà n++ và ++n làm dc. Ví dụ cout << ++n; thì dc nhưng cout << n+=1; thì sẽ bị báo lỗi vì n+=1 k trả về giá trị, nó chỉ là 1 phép gán. Do đó nên dùng n++ và ++n

Wind
Wind

Đúng là viết theo kiểu prefix, postfix thì nhanh thật, nhưng có 1 vài trường hợp dùng nó hơi khó đỡ, khó sửa chữa tí.