tôi đang làm việc trên một ứng dụng mà xử lý mảng phao lớn, và tôi đã vô cùng thất vọng khi thấy rằng Swift rõ ràng là một tốt 10x chậm hơn so với Python khi chạy trên iPhone của tôi 5. Tôi đoán rằng không thể đúng, nhưng tôi có thể nghĩ rằng nó đúng là tôi đã không thử nghiệm ứng dụng trong Time Profiler và nhận ra rằng nó có thể không phải là thuật toán của tôi hoặc việc thực hiện Swift gây ra các vấn đề.Ứng dụng Swift chỉ hoạt động hợp lý khi được xây dựng cho Xcode's Time Profiler?
Khi ứng dụng được xây dựng cho profiler, nó hoạt động độc đáo: Nó xử lý trong một khoảng thời gian không đáng kể, như nó cần. Nhưng thông thường, nếu tôi nhấn nút chạy (biểu tượng play) trong Xcode để xây dựng và chạy, ngay cả với trình biên dịch thiết lập để được nhanh nhất, phải mất gần 20 giây để hoàn thành. (Mã số vẫn không thay đổi giữa xây dựng.) Đó là ridiculously chậm.
Đó là lý nhanh khi tôi xây dựng và chạy trong một mô phỏng trên MacBook Pro của tôi, nhưng ngay cả sau đó nó chậm hơn là khi xây dựng và chạy qua Time Profiler trên iPhone nhỏ của tôi 5.
Việc thực hiện sự khác biệt giữa xây dựng cũng có mặt khi tôi đặt mã thử nghiệm sau đây trong ứng dụng) chức năng (trong appdelegate, vì vậy tôi không nghĩ rằng đó là một GUI/vấn đề luồng hoặc bất cứ điều gì. Và cùng một mã kiểm tra chạy nhanh khi được thực hiện trong Objective-C (trong một ứng dụng riêng biệt trên thiết bị của tôi) và Python trên máy Mac của tôi.
var nums: [Float] = []
for var i = 0; i < 250000; i++ {
nums.append(Float(i) * 0.001)
}
(này mất khoảng 20 giây trừ khi chạy qua Time Profiler.)
Có bất kỳ của bạn trải qua bất cứ điều gì giống như trước khi điều này? Tôi sẽ vô cùng hạnh phúc nếu bạn có thể giúp tôi tìm ra điều này.
Liệu nó có tác dụng nếu bạn thay đổi cấu hình build chuẩn bị tung ra? – NobodyNada
Tôi nghĩ rằng nó được thiết lập để phát hành hiện tại. Tôi đã không gây rối với các thiết lập xây dựng nhiều, nhưng có lẽ có một cách để trở lại mặc định chỉ trong trường hợp? – ICoffeeConsumer
Mặc định là Gỡ lỗi, không phải là Bản phát hành. Khi được đặt thành Debug, ứng dụng chậm nhưng dễ gỡ lỗi, khi phát hành thì nhanh nhưng khó gỡ lỗi. – NobodyNada