Các thiết bị iOS cũ hơn (iPhone, iPhone 3G, iPod touch thế hệ thứ nhất và thứ hai) có CPU chỉ hỗ trợ tập lệnh armv6. IPhone 3G S (và iPad và iPod touch thế hệ thứ ba) có bộ xử lý mới hơn cũng hỗ trợ bộ lệnh armv7. Nói chung, armv7 nhanh hơn trên các bộ vi xử lý mới hơn và khuyên bạn ít nhất bao gồm một bản build armv7 trong các ứng dụng của bạn trong tương lai (trong một ứng dụng chỉ dành cho iPad, bạn có thể chỉ cần xây dựng cho armv7).
Như Jasarien chỉ ra, diện tích chênh lệch lớn nhất giữa các bộ chỉ lệnh là trong các phép toán dấu phẩy động. Trên armv6, các ứng dụng có xu hướng được xây dựng bằng cách sử dụng tập lệnh Thumb đã giảm để tạo ra các tệp nhị phân nhỏ hơn, nhưng hiệu suất điểm nổi của Thumb là khủng khiếp. Do đó, bạn cần tắt Thumb là bạn muốn các phép tính dấu phẩy động nhanh hơn. Trên armv7, tập lệnh Thumb-2 không còn giới hạn này, do đó, Apple khuyên bạn nên biên dịch bằng hầu hết mọi lúc.
Bạn có thể đặt cài đặt Tạo hình thu nhỏ có điều kiện để tắt thiết bị cũ và bật cho các thiết bị mới hơn. Để thực hiện việc này, hãy chuyển tới cài đặt Xcode của bạn và chọn tùy chọn Biên dịch cho ngón tay cái. Vào menu ở phía dưới bên trái của màn hình và chọn tùy chọn Add Build Setting Condition. Trong điều kiện thiết lập build mới, chọn ARMv6 cho kiến trúc, tắt Thumb cho nó, thêm một điều kiện khác, chọn ARMv7 cho kiến trúc của nó, và kích hoạt Thumb cho nó.
Theo câu trả lời của Stephen Canon here, cả hoạt động điểm động đơn và đôi chính xác đều được hỗ trợ trong phần cứng trong armv6.Tôi đã tìm thấy rằng số học chính xác đơn thực hiện tốt hơn một chút trên nền tảng này, có lẽ do nhiều hoạt động phù hợp với bộ nhớ cache. Trên armv7, điểm neo nổi SIMON SIMD chỉ hoạt động trên các hoạt động chính xác đơn, do đó có thể có sự khác biệt lớn về hiệu suất giữa các hoạt động chính xác đơn và đôi.
câu hỏi khác có thể là mối quan tâm về vấn đề này bao gồm:
Nguồn
2010-07-22 17:26:41
Chỉnh sửa nhỏ: armv6 và armv7, không arm6 và arm7. Lưu ý 'v'. – lucius