bất đồng bộ java khác js.Java có bất đồng bộ như Javascript không mọi người? Nếu có thì nó có được sử dụng nhiều không hay là chỉ dùng thread thôi?
chạy cái gì bro ? speed không phải lợi thế của java.Java vs c++ cái nào nhanh hơn vậy ae.
Code tối ưu hết thì C++ ăn, compiler của nó optimize kinh hơn.Java vs c++ cái nào nhanh hơn vậy ae.
Sao ông thầy tôi nói java xử lý nhanh hơn nhỉCode tối ưu hết thì C++ ăn, compiler của nó optimize kinh hơn.
Fen học trường nào thếSao ông thầy tôi nói java xử lý nhanh hơn nhỉ
Java nó optimize nhẹ lúc compile ra bytecode, sau đó mới optimize thêm lần nữa lúc chạy bytecode, còn C++ optimize kỹ càng hết lúc tạo executable rồi thôi, nên đúng là sẽ có một số trường hợp Java nhanh hơn ở hot path (đoạn code được chạy nhiều) do nó có thêm thông tin ở runtime để quyết định và nhờ vậy compile từ bytecode ra đoạn native code hiệu quả hơn. Bù lại là thím sẽ phải tốn thời gian để compile ở thời điểm chạy, còn C++ thì thím đã compile sẵn ra native code từ đầu rồi, chỉ lôi ra chạy thôi nên không tốn thời gian cho phần đó nữa.Sao ông thầy tôi nói java xử lý nhanh hơn nhỉ
int f() { return 499500; }
luông()
gọi f()
nhưng compile xong không còn function call nữa do GCC thấy f()
chỉ tồn tại trong compilation unit này nên có thể bị loại bỏ hoàn toàn mà không ảnh hưởng gì xung quanh. Giờ thím bỏ qua hết mấy instruction khác chỉ đếm mov
thôi thì nó cũng đã từ 6 xuống còn 1.f()
này của thím được gọi đủ nhiều thì mới có hy vọng nó được optimize như hàm f()
của C++, còn không thì nó chạy đủ 1000 lần lặp để tính tổng.Cám ơn thím đã thông nãoVí dụ đơn giản về optimization của C++ đây, GCC nó thấy loop này tính được lúc compile nên nó optimize thànhint f() { return 499500; }
luôn
View attachment 2338955
Ngoài ra nó còn nhiều optimization khác, một trong số đó là inlining, ở đâyg()
gọif()
nhưng compile xong không còn function call nữa do GCC thấyf()
chỉ tồn tại trong compilation unit này nên có thể bị loại bỏ hoàn toàn mà không ảnh hưởng gì xung quanh. Giờ thím bỏ qua hết mấy instruction khác chỉ đếmmov
thôi thì nó cũng đã từ 6 xuống còn 1.
View attachment 2338975
So với Java bytecode thì nó thế này
View attachment 2338964
Chỉ khi nào hàmf()
này của thím được gọi đủ nhiều thì mới có hy vọng nó được optimize như hàmf()
của C++, còn không thì nó chạy đủ 1000 lần lặp để tính tổng.
Đúng, nhưng mà khó tìm một người viết C++ giỏi. Tìm java dễ hơn :v. Có một bài báo có phân tích tại như dưới:Code tối ưu hết thì C++ ăn, compiler của nó optimize kinh hơn.
Em không làm việc với Java và C++ (xưa học C++ chỉ để giải trí), hoàn toàn mù tịt tình hình thực tế nên xin phép không bình luận về cái này. Có thể thím đúng, có thể dev Java đủ giỏi để optimize Java cho nhanh như C++ thì cũng đủ năng lực để chơi với C++, em không chắc.Đúng, nhưng mà khó tìm một người viết C++ giỏi. Tìm java dễ hơn :v. Có một bài báo có phân tích tại như dưới:
Why Java is better than C++ for high speed trading systems?
Why Java is better than C++ for high speed trading systems
You need to relearn Java to make it happen.www.efinancialcareers.com
Như vậy thì lựa chọn thực sự ở đây của mấy tay to này là "không phải C++" do nó quá nguy hiểm chứ không hẳn là "Java", chi phí debug C++ quá đắt đỏ nên mấy thím tay to này mới chọn cái an toàn hơn thôi.The way that we code is more like C++ than Java
tập chung vào làm việc :vlâu rồi em không làm Java các thím cho hỏi giờ theo Java thì nên tập trung vào đâu nhỉ
- Tìm hiểu JDK mới nhất - trước đây em chỉ làm JDK 8 với 11 là chủ yếu
- Tiếp tục đào sâu vào Spring và SpringBoot
- Các hướng đi khác ...
Khi nào cần thì sẽ dùng thôi, ko áp dụng đc là vì chưa cầnEm đang học đến phần Java Core có Lambda, Inner Class,... mà thấy cno khó áp dụng quá Hay tại em ngu ta
Dạ vâng em cảm ưn a. Kiểu em sợ quên, chưa áp dụng được mấy cái í nhiều lắm nên đang chưa hiểu sâu í ạ.Khi nào cần thì sẽ dùng thôi, ko áp dụng đc là vì chưa cần
fen cứ học qua một lượt đi, sau này gặp lại thì sẽ nhận ra thôi. Lambda hay dùng trong stream api như map, filter, reduce,... Inner class thì sau này làm sẽ để ý có builder pattern.Dạ vâng em cảm ưn a. Kiểu em sợ quên, chưa áp dụng được mấy cái í nhiều lắm nên đang chưa hiểu sâu í ạ.
cứ thấy loop thì đem vô sài là từ từ quen àEm đang học đến phần Java Core có Lambda, Inner Class,... mà thấy cno khó áp dụng quá Hay tại em ngu ta
làm leetcode hay thuật toán thì dùng đi fenDạ vâng em cảm ưn a. Kiểu em sợ quên, chưa áp dụng được mấy cái í nhiều lắm nên đang chưa hiểu sâu í ạ.