Swift có nhanh hơn Objective C?

1454
photo: skilledup

Câu hỏi này tôi đã được học viên hỏi rất nhiều lần và câu trả lời luôn là chưa được giải đáp. Tôi sẽ test với Xcode 7.3 beta và chạy một vài đoạn mã so sánh Swift 2.2 và Obj-C. Kết quả chắc sẽ ngạc nhiên với tất cả chúng ta.

Tôi đã đọc vài bài viết về việc so sánh giữa SwiftObj-C và một trong số đó nói là Swift nhanh hơn nhưng với tôi thì trong một vài trường hợp cụ thể thì Swift sẽ nhanh hơn nhưng Obj-C vẫn có những lợi thế riêng của nó.

Trong lần test này chúng ta sẽ sử dụng cấu trúc dữ liệu nguyên thuỷ của Swift (Array, Dictionary, Set) với Obj-C sẽ là (NSArray, NSDictionary, NSSet). Tôi sẽ sử dụng XCTest cho cả hai. Với tôi thì nó đơn giản và có sẵn luôn đối với Swift và Obj-C. Chúng ta sẽ chạy với chế độ mặc định bởi vì đôi khi có thể Apple sẽ ưu ái hơn khi thêm một số option(Relase optimiztion) tôi làm điều này chỉ để chắc chắn xem liệu Swift có chậm hợn Obj-C trong khi debug hay không.

Tất cả các kiểu dữ liệu được nói đến ở trên sẽ được đổ đầy với một triệu các phần tử kiểu (String hoặc NSString) là các số random và tôi sẽ chạy mỗi một trường hợp test 10 lần.

[HCM] Swift 1 năm kinh nghiệm và Offer $1000! Tại hiSella, với 1 năm kinh nghiệm Swift, bạn nhận ngay:

  • Khởi điểm $700, lên đến $1000
  • Trang bị Macbook / Chỉ làm thứ 2 – thứ 6
  • Làm việc tại Co-working space hiện đại tại TpHCM
  • Seminar hàng tuần
  • Cơ hội tham dự các hội thảo chuyên ngành trong và ngoài nước
  • Company trip là đương nhiên, phượt thì 2-3 tháng 1 chuyến
  • Apply ngay tại đây: http://topdevvn.com/s/z0y9GUb4

Array

Đây là kiểu dữ liệu cơ bản và rất quen thuộc với lập trình viên ở mọi ngôn ngữ. Với Array Swift thắng.

Nên học lập trình iOS bằng Swift hay Objective-C?

Sets

Set không nhanh hơn NSSet. Các bạn có thể nhìn rõ 2 cột Add và Remove các phần tử.

Nên học lập trình iOS bằng Swift hay Objective-C?

Dictionaries

Đây là một dữ liệu kiểu cấu trúc khá tương đồng trong cả hai ngôn ngữ. Quá trình thêm thì Swift chậm hơn, nhưng bạn có thể đếm số phần tử nhanh hơn hẳn.

Nên học lập trình iOS bằng Swift hay Objective-C?

Kết luận

Tôi rất muốn nói là Swift nhanh hơn nhưng điều đó là không đúng. Nó không chậm hơn nhưng cũng không nhanh hơn trong tất cả các trường hợp, điều đó không có nghĩa là chúng ta sẽ quay lại với Obj-C. Swift cũng có nhiều điểm thuận lợi hơn cho phép bạn có thể dễ hiểu hơn về cú pháp, đa nền tảng, có thể là với nhiều các chức năng tuyệt vời hơn mà Apple sẽ cung cấp như là bố mẹ lúc nào cũng chăm chút hơn cho đứa con bé hơn và hãy nhớ đừng trở thành người lạc hậu trong công nghệ, vậy ngay bây giờ hãy cùng đọc một vài các quyển sách hay về swift để cảm nhận.

TechTalk via Techmaster

CHIA SẺ