Chúng tôi có một codebase lớn đã sử dụng thành công boost :: tín hiệu trong nhiều năm. Gần đây, chúng tôi đã chuyển sang phiên bản v1.54 và quyết định rằng kể từ khi tăng :: tín hiệu không được chấp nhận, chúng tôi sẽ chuyển sang tăng :: signal2.Thời gian biên dịch với tăng :: signal2 rất chậm
Vấn đề chúng ta đang thấy là thời gian biên dịch thật khủng khiếp. Ví dụ: một tệp .cpp nhỏ giờ sẽ mất 20 + giây khi nó được sử dụng để mất 4.
Tương tự, một trong các thư viện của chúng tôi (lớn) được sử dụng mất khoảng 10 phút để tạo ngay bây giờ mất tối đa một giờ. Tôi đã tìm kiếm tất cả các tài liệu về cách cải thiện điều này thông qua các tiêu đề được biên dịch sẵn, các macro, v.v ... nhưng vẫn chưa tìm thấy bất cứ điều gì cải thiện tình hình rất nhiều.
Xem cl.exe trong procmon tiết lộ một lượng lớn IO vào thư viện boost :: signal2 và mpl.
Chúng tôi không cần sự an toàn của luồng mà các tín hiệu 2 cung cấp tại thời điểm này, chúng tôi gần kéo phích cắm lên 'nâng cấp' và hoàn nguyên về tín hiệu. Có ai có bất cứ đề nghị hoặc kinh nghiệm với điều này trước khi chúng tôi bỏ?
Chúng tôi đang sử dụng VS2012 với nhiều RAM/đĩa/v.v.
Bạn có đang sử dụng các tiêu đề được biên dịch trước không? –
Signals2 sử dụng các mẫu variadic, chúng được mô phỏng trong VS2012 với chi phí đáng kể. Đã sửa trong VS2013. Giữa Boost thích nghi với điều đó và VS2013 hạ cánh trên máy tính của bạn, hãy cho nó một vài tháng. –
@HansPassant Cảm ơn thông tin, tôi đã không xem xét điều đó. Do chúng tôi không thể chờ VS2013 là hành động tốt nhất để hoàn nguyên về thư viện tín hiệu theo ý kiến của bạn? Như bây giờ, mã không sử dụng được do thời gian biên dịch chậm. – pennyowe