Nó không thực sự là một thủ thuật. Đó là cách mà các bộ phận của Unity3D xử lý bộ nhớ.
Trong Unity3D bạn có các đối tượng được xử lý bởi Mono và sẽ được thu thập rác và các đối tượng được Unity xử lý, sẽ không bị thu gom rác. Chuỗi, ints vv được làm sạch bởi Mono tự động và chúng tôi không phải lo lắng về điều này. Texture (2D) s vv không, và chúng ta phải xử lý các đối tượng này một cách thủ công.
Khi yêu cầu bộ nhớ được thực hiện, điều đầu tiên xảy ra là trình quản lý bộ nhớ quét bộ nhớ hiện đang được cấp của ứng dụng từ hệ điều hành cho một đoạn đủ lớn để lưu trữ dữ liệu bạn đang yêu cầu. Nếu tìm thấy một kết quả phù hợp, bộ nhớ đó sẽ được sử dụng. Nếu không tìm thấy kết quả phù hợp, ứng dụng sẽ yêu cầu thêm bộ nhớ từ hệ điều hành để lưu trữ dữ liệu của bạn. Khi dữ liệu này không còn được sử dụng nữa, nó sẽ được thu thập rác, nhưng ứng dụng vẫn giữ lại bộ nhớ đó. Về bản chất, nó đặt một lá cờ trên bộ nhớ để nói rằng nó có thể sử dụng được hoặc có thể phân bổ lại. Điều này làm giảm các yêu cầu cho bộ nhớ được thực hiện cho hệ điều hành bằng cách không bao giờ trả lại nó.
Điều này có nghĩa là hai điều;
1) Bộ nhớ của ứng dụng của bạn sẽ chỉ tiếp tục phát triển và sẽ không trả lại bộ nhớ cho hệ điều hành. Trên thiết bị di động, điều này rất nguy hiểm, như thể bạn sử dụng quá nhiều bộ nhớ, ứng dụng của bạn sẽ bị chấm dứt.
2) Ứng dụng của bạn thực sự có thể được phân bổ nhiều bộ nhớ hơn mức thực tế cần. Điều này là do bộ nhớ bị phân mảnh. Bạn có thể có 10MB bộ nhớ khả dụng trong bộ nhớ của ứng dụng, nhưng không phải khối lượng đó đủ lớn để chứa dữ liệu bạn cần lưu trữ.Do đó, có thể ứng dụng sẽ yêu cầu nhiều bộ nhớ hơn từ hệ điều hành vì không có một bộ nhớ tiếp giáp có sẵn có thể được sử dụng.
Vì bạn đang tạo một đối tượng lớn, do đó yêu cầu bộ nhớ, khi bạn đặt đối tượng đó thành rỗng và báo hiệu cho bộ thu gom rác mà bộ nhớ không còn cần thiết cho ứng dụng, sẽ nhanh hơn để phân bổ lại bộ nhớ các đối tượng khác thay vì yêu cầu thêm bộ nhớ từ hệ điều hành. Đó là lý do tại sao trong lý thuyết phương pháp đặc biệt này là nhanh chóng và sẽ dẫn đến gai ít hiệu suất như thu gom rác được gọi ít thường xuyên hơn. Đặc biệt vì đây là một phân bổ bộ nhớ lớn, liền kề.
Nguồn
2015-05-19 13:04:20
@downvoter - Hãy cẩn thận để làm sáng tỏ những gì bạn thấy sai? –