[Qua cuộc nói chuyện của tỷ phú Elon Musk chúng ta bàn về các công nghệ lập trình liên quan và tại sao android lag hơn IOS]
Trích:
"sẽ thật thú vị nếu bản thân các luật lệ được tích hợp sẵn một cơ chế tự chết đi trừ khi có một ai đó công khai bảo vệ nó. " (cái này đang nói về chính trị)
"Không phải để bênh vực java hay bất cứ thứ gì. bạn có thể có bộ sưu tập rác tuyệt vời trong python, v.v.".
(you could also have great garbage collection in python and so on). trích đoạn anh ta bảo C++ không có cơ chế gom rác tự động và java thì có. Nhưng mà cơ chế này thực sự không tốt . và chúng ta có một cơ chế gom rác tuyệt vời trong python.
chả liên quan thì tiện mình có xem cuộc nói chuyện của elon họ có vô tình đề cập đến java, c++, và python nên mình viết qua.
Cơ chế gom rác garbage collection và reference count
Một nhược điểm lớn của việc truy tìm garbage collection của Java là theo thời gian nó sẽ "dừng thế giới" và đóng băng ứng dụng trong một thời gian tương đối dài để thực hiện một GC đầy đủ. Nếu heap lớn và phức tạp cây đối tượng, nó sẽ đóng băng trong vài giây.
đây thực sự là nguyên nhân chính gây ra cảm giác giật của Android (dựa trên Java), ngay cả trên điện thoại di động đắt tiền nhất, so với độ mượt của iOS (dựa trên ObjectiveC và sử dụng RC).(RC là reference count. Python sử dụng phương thức đếm tham chiếu (RC) để xử lý thời gian tồn tại của đối tượng.)
Việc thu gom rác sử dụng GC nhanh hơn (hiệu quả hơn về thời gian) so với việc đếm tham chiếu, nếu bạn có đủ bộ nhớ. Nhưng nếu bạn không có đủ bộ nhớ thì đúng là kiểu "Khoan, dừng khoảng chừng là 2 giây. Để nó biết ông chủ chính là ai đây"
Hệ thống đếm tham chiếu RC có thể hoạt động ngay cả khi chỉ còn trống một vài phần trăm bộ nhớ.
Nếu bạn phải làm việc trong môi trường hạn chế về bộ nhớ hoặc nếu bạn cần số liệu cuối cùng chính xác, hãy sử dụng phương pháp đếm tham chiếu RC. Nếu bạn có đủ bộ nhớ và cần tốc độ, hãy sử dụng tính năng thu gom rác GC.
java nó khá là bảo mật với một số cơ chế bên dưới của nó. Lần gần nhất mình sử dụng java là dùng Hadoop. Nhưng mà các bạn code java lâu rồi sẽ thấy nó khá dài dòng mất thời gian.
Chủ quan cá nhân mình thì dạo này mình hay dùng cython để python chạy nhanh như C. Và khi cần tương tác sâu hơn thì mình dùng extension C++ với python. Các thư viện như kiểu sklearn cũng được viết bằng Cython. Anyway các bạn nên học hết để khi nào tiện cái nào thì dùng cái đó.
Mình nhớ mình có cả khoá học java, python, và C++ các bạn có thể học để ủng hộ mình 😉)
Mình có 2 cái điện thoại 1 andorid và 1 ios mình dùng cả 2. Cơ mà mình fan của Iphone nhé android nó lag thật 😉))
không liên quan lắm nhưng mà testla đã viết lại trình biên dịch C của riêng họ để tăng tốc độ.