Giảm thời gian biên dịch bằng cách khôi phục các tác phẩm biên dịch đã được lưu vào bộ nhớ cache cả cục bộ và từ xa
Tăng tốc độ xây dựng bằng cách khôi phục các artefact biên dịch đã được lưu trữ cho Rust, C/C++ và CUDA, sử dụng lưu trữ địa chỉ nội dung và các backend từ xa. Kache, từ Zondax AG, kết nối với Cargo thông qua RUSTC_WRAPPER và hỗ trợ lưu trữ S3, GCS và OCI. Nó nhắm đến các nhà phát triển và kỹ sư DevOps cần phát triển địa phương nhanh hơn và chạy CI/CD, cung cấp thu gom rác tự động và trích xuất cứng để giữ cho các bộ nhớ cache đáng tin cậy và tiết kiệm không gian.
Cách kache tái sử dụng đầu ra biên dịch trước đó để rút ngắn quá trình biên dịch
Kache lưu trữ đầu ra của trình biên dịch trong một kho lưu trữ địa phương hoặc từ xa được địa chỉ hóa theo nội dung và khôi phục các đối tượng phù hợp thay vì chạy lại trình biên dịch. Nó hỗ trợ các trình biên dịch Rust, C/C++ và CUDA và hoạt động như một RUSTC_WRAPPER cho các quy trình Cargo. Thiết kế đó có nghĩa là các đầu vào biên dịch giống hệt sẽ trả về cùng một đối tượng từ bộ nhớ cache, đây là cơ chế giúp giảm công việc biên dịch lặp lại trên cả máy của nhà phát triển và các trình chạy CI.
Cách nó ảnh hưởng đến tài nguyên hệ thống trong quá trình hoạt động bình thường
Các hoạt động cache giữ cho việc sử dụng đĩa hiệu quả thông qua việc loại bỏ trùng lặp và thu gom rác tự động, vì vậy lưu trữ địa phương không phát triển vô hạn. Các backend từ xa di chuyển các đối tượng ra khỏi máy chủ đến S3, GCS hoặc các kho lưu trữ OCI, điều này chuyển áp lực lưu trữ ra khỏi máy của nhà phát triển. Công cụ này đọc và khôi phục các đối tượng thay vì xây dựng lại chúng, vì vậy CPU và I/O thời gian biên dịch được tiết kiệm trong các lần truy cập cache.
Liệu kache có hoạt động an toàn trong các môi trường xây dựng không
Việc trích xuất được tăng cường ngăn chặn việc duyệt đường dẫn và các rủi ro liên quan, một biện pháp an ninh rõ ràng trong công cụ. Đối với các hoạt động lấy và giải nén các đối tượng, kache áp dụng các kiểm tra xử lý an toàn trước khi ghi các tệp vào không gian làm việc. Những kiểm soát đó làm cho nó phù hợp với các trình chạy CI/CD và bộ nhớ cache chia sẻ nơi các đầu vào không đáng tin cậy có thể ghi đè lên các đường dẫn nhạy cảm.
Cách thiết lập và sử dụng hàng ngày có tính kỹ thuật như thế nào
Cài đặt và tích hợp mong đợi sự quen thuộc của nhà phát triển với các chuỗi công cụ. Trên Windows, nó hỗ trợ clang-cl và yêu cầu Rust 1.95 hoặc mới hơn khi được sử dụng với Cargo. Các nhà phát triển khởi tạo bộ bọc một lần và tiếp tục sử dụng các lệnh cargo tiêu chuẩn, vì vậy việc sử dụng hàng ngày có định hướng dòng lệnh và nhắm đến các kỹ sư và nhân viên DevOps thay vì những người đóng góp không kỹ thuật.
Tăng tốc thực tiễn cho các đội tập trung vào xây dựng với một caveat tương thích đáng chú ý
Kache phù hợp với các kỹ sư quản lý các bản dựng Rust, C/C++ hoặc CUDA và muốn có các hit bộ nhớ đệm dự đoán thông qua lưu trữ theo địa chỉ nội dung và các backend đám mây. Các kiểm tra bảo mật và thu gom rác của nó làm cho nó phù hợp cho các môi trường CI chia sẻ. Thỏa thuận chính là hỗ trợ trình biên dịch Windows: nó không lưu bộ nhớ đệm cho trình biên dịch MSVC cl.exe, điều này hạn chế giá trị cho các đội dựa vào bộ công cụ đó.