cuốn sách gpt4 ai đã làm

c++ - 哪个更快 : Stack allocation or Heap allocation

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 08:01:57 25 4
mua khóa gpt4 Nike

Câu hỏi này nghe có vẻ khá sơ đẳng nhưng đó là cuộc tranh luận của tôi với một nhà đồng phát triển khác.

Tôi cẩn thận phân bổ ngăn xếp nếu có thể thay vì phân bổ chúng theo đống. Anh ấy đang nói chuyện với tôi và nhìn qua vai tôi và nhận xét rằng điều đó là không cần thiết vì họ đều có màn trình diễn giống nhau.

Tôi luôn nghĩ rằng ngăn xếp phát triển theo thời gian không đổi và hiệu suất phân bổ vùng heap phụ thuộc vào độ phức tạp hiện tại của việc phân bổ (tìm lỗ có kích thước phù hợp) và phân bổ (thu gọn lỗ để giảm) sự phân mảnh của vùng heap, bởi vì nếu Tôi nhớ chính xác, Nhiều triển khai thư viện tiêu chuẩn cần có thời gian để thực hiện việc này trong quá trình xóa).

Điều này gây ấn tượng với tôi vì có lẽ rất phụ thuộc vào trình biên dịch. Cụ thể cho dự án này tôi đang sử dụng Metrowerks PPC Kiến trúc trình biên dịch. Hiểu được sự kết hợp này là hữu ích nhất, nhưng còn GCC và MSVC++ nói chung thì sao? Phân bổ đống có hiệu suất kém hơn phân bổ ngăn xếp không? Không có sự khác biệt? Hoặc sự khác biệt quá nhỏ đến mức nó trở thành một sự tối ưu hóa vi mô vô nghĩa.

câu trả lời hay nhất

Việc phân bổ ngăn xếp nhanh hơn nhiều vì tất cả những gì nó thực sự làm là di chuyển con trỏ ngăn xếp. Sử dụng nhóm bộ nhớ, bạn có thể nhận được hiệu suất tương đương từ phân bổ vùng heap, nhưng điều này làm phức tạp hơn một chút và gây ra một số vấn đề đau đầu.

Ngoài ra, ngăn xếp so với đống không chỉ là việc xem xét hiệu suất; nó còn cho bạn biết nhiều điều về thời gian tồn tại dự kiến ​​của đối tượng.

Về C++ - nhanh hơn: Phân bổ ngăn xếp hoặc Phân bổ Heap, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4116660/

25 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress