Khi tôi sử dụng MSYS để biên dịch một số thứ, bước ./configure
có thể mất nhiều thời gian hơn make
. Tuy nhiên, quá trình tương tự trong Linux có cấu hình nhanh và làm chậm. Đây có phải chỉ là một số thiết lập trong MSYS đó là bogging xuống hệ thống của tôi? Có ai có giải pháp không?Tại sao cấu hình quá chậm trong MSYS?
Trả lời
Điển hình configure
tập lệnh thực hiện lô bắt đầu quy trình phụ nhỏ. Trên các hệ điều hành giống Unix, điều này được thực hiện với các cuộc gọi hàm fork()
và exec()
, có các ngữ nghĩa rất cụ thể cần được bảo toàn (ví dụ, bộ nhớ chia sẻ sao chép trên ghi sau khi tắt). Trên Windows, các quy trình con được tạo ra với CreateProcess()
có ngữ nghĩa rất khác (ví dụ: không gian bộ nhớ riêng biệt hoàn toàn từ bố mẹ). Để thực thi các kịch bản và chương trình giống như Unix một cách chính xác, MSYS cần thực hiện rất nhiều công việc mô phỏng để tạo ra các quy trình mới trên Windows hoạt động như fork()/exec()
trên Unix. Điều này kết thúc là chậm hơn so với một hệ điều hành cung cấp những cuộc gọi chức năng nguyên bản.
Bạn cũng có thể tắt bất kỳ trình quét vi rút nào bạn đang chạy. Họ sẽ quét lại một tập tin thực thi mỗi khi nó được tải, mà hoàn toàn giết chết hiệu suất kịch bản.
Thậm chí nếu bạn không có phần mềm chống vi-rút đang chạy, đừng quên về Windows Defender. (Bạn cũng có thể muốn vô hiệu hóa Kiểm soát Tài khoản Người dùng, mặc dù tôi không biết tác động nào có trên thời gian tải chương trình.)
Rất nhiều truy cập đĩa được tham gia, IMHO làm chậm mọi thứ. Ví dụ cấu hình tạo mã nguồn tạm thời được biên dịch như là một phần của các thử nghiệm mà nó thực hiện. Điều này tạo ra một tập tin đối tượng mà phải được xóa một lần nữa. Những gì tôi làm để tăng tốc cấu hình là trích xuất nguồn mà tôi muốn xây dựng trên một ổ đĩa RAM và cấu hình và biên dịch nó ở đó. Tôi khuyên bạn nên sử dụng ImDisk (http://www.ltr-data.se/opencode.html/#ImDisk) miễn phí.
- 1. Tại sao numpy.array quá chậm?
- 2. Tại sao "htmlspecialchars" quá chậm?
- 3. Tại sao MySQL trong Node.js quá chậm?
- 4. Tại sao PostgreSQL quá chậm trên Windows?
- 5. Truy cập cấu hình ứng dụng Rails chậm - tại sao?
- 6. Tại sao vải Tk lại quá chậm?
- 7. Tại sao hàm hypot() quá chậm?
- 8. Tại sao putImageData lại quá chậm?
- 9. Tại sao tải lên quá chậm?
- 10. Tại sao ngẫu nhiên.choice quá chậm?
- 11. Tại sao plyr lại quá chậm?
- 12. Tại sao pypy của deque quá chậm?
- 13. tại sao ruby scanf quá chậm?
- 14. Tại sao quá trình xây dựng Titanium lại quá chậm?
- 15. Tại sao cuộc gọi mongodb của tôi lại quá chậm?
- 16. Tại sao javascript chậm trong?
- 17. Tại sao Eclipse quá chậm khi khởi động?
- 18. tại sao âm mưu với Matplotlib quá chậm?
- 19. Tại sao jQuery.ready được đề xuất khi quá chậm?
- 20. CodedUI: Tại sao tìm kiếm một ô quá chậm?
- 21. Tại sao trình gỡ lỗi của tôi quá chậm?
- 22. Tại sao kết nối với máy chủ MySQL quá chậm?
- 23. Tại sao đầu ra bàn điều khiển quá chậm?
- 24. Tại sao thời gian khởi động IronPython quá chậm?
- 25. Tại sao bộ chọn jQuery này lại quá chậm?
- 26. Tại sao Array.Sort() quá chậm so với LINQ?
- 27. Tại sao DateTime.Now DateTime.UtcBây giờ quá chậm/tốn kém
- 28. Tại sao các vectơ đóng hộp quá chậm?
- 29. Tại sao git log --cherry-pick quá chậm?
- 30. Tại sao biểu thức Haskell này lại quá chậm?
Thực sự không tệ đến 'CreateProcess' trên cửa sổ. Tôi nghĩ Cygwin cố gắng mô phỏng ngã ba trên cửa sổ khiến nó trở nên cực kỳ chậm chạp. Nếu bash không sử dụng fork (tôi đoán nó dùng fork, nhưng tôi không kiểm tra) để bắt đầu quá trình thì cấu hình sẽ chạy nhanh như vậy. Trên hộp i7 của tôi khi tôi đang cố gắng khắc phục vấn đề này, dường như Cygwin có thể ngã ba chỉ một vài lần mỗi giây. Một cách để kiểm tra tốc độ của ngã ba: trong khi (đúng); làm ngày; đã hoàn thành | uniq -c – Pavel
+1 Pavel .. uclinux có cùng một vấn đề nó có thể chạy mà không có một MMU và bất cứ điều gì với ngã ba sử dụng một bản sao đầy đủ rất chậm – user1496062