2009-05-29 3 views
5

thể trùng lặp:
Why does C++ compilation take so long?Đặc điểm nào của Java cho phép nó xây dựng nhanh hơn nhiều so với chương trình C++ có thể so sánh?

tôi đang làm việc với hai dự án khác nhau về kích thước tương tự (loc). Quá trình xây dựng Java sử dụng Ant được tính bằng phút. Việc xử lý xây dựng C++ bằng cách sử dụng các công cụ CMAKE được đo bằng giờ.

Đặc điểm nào của Java cho phép nó xây dựng nhanh hơn nhiều so với chương trình C++ có thể so sánh?

+0

C++ kết hợp sức mạnh của lắp ráp với khả năng sử dụng và dễ sử dụng lắp ráp – Jherico

Trả lời

3

Bạn có thể tìm thấy this question hữu ích. Câu trả lời được chấp nhận không nhấn mạnh một so sánh với java, nhưng bạn có thể suy ra khá nhiều về những gì C++ đang thực hiện quá lâu.

+0

Liên kết chỉ ra câu trả lời rất tốt. cảm ơn! – Jon

4

Tôi phải nghi ngờ rằng sự thiếu vắng kilolines của tệp tiêu đề là rất nhiều việc phải làm với nó.

+1

Và bộ tiền xử lý nói chung. – luiscubal

+0

các tiêu đề được biên dịch trước giúp ở đây, đúng không? – dfa

+0

@dfa: Yup, bunches. – chaos

4

chiến lược tối ưu hóa khác nhau

mã Java thường không được tối ưu hóa càng nhiều càng tốt C/C++ tại thời gian biên dịch. Điều này có nghĩa rằng mã byte Java là "ít được tối ưu hóa" hơn so với mã nguồn gốc "tương tự" được phát ra bởi trình biên dịch C/C++. Trình biên dịch Just In Time (JIT) của JVM thực hiện tối ưu hóa trong thời gian chạy để tăng hiệu năng mã byte.

-2

Chà, có được là một thứ khác đang diễn ra trong tệp CMAKE đó không xảy ra với dự án java. Các trường hợp kiểm tra tự động có đang chạy không? Không có bất cứ điều gì cơ bản về Java mà sẽ làm cho nó biên dịch các đơn đặt hàng của cường độ (hoặc bất kỳ) nhanh hơn so với mã C + +.

+0

Biên dịch không, nhưng đôi khi đó là liên kết mất hàng giờ. – mkb

+0

Bạn thưa bạn, là sai. – Malfist

+0

Đã bị treo! Phục vụ tôi đúng khi tham gia một dự đoán không được giáo dục – AgileJon

2

Chỉ cần có cùng một LOC không có nghĩa là tòa nhà sẽ mất cùng một lúc. Ví dụ, nếu bạn thêm các tệp tiêu đề lớn như windows.h trong C++, nó sẽ phải xây dựng nhiều hơn nữa cho một dòng này.

4

Mẫu đặc biệt chậm để biên dịch.