Khó khăn trong việc đó là do C ++ có xu hướng tự lan truyền và quá trình biên dịch trên nhiều tệp nhỏ, riêng lẻ. Đó là điều mà Linux giỏi và Windows thì không. Nếu bạn muốn tạo một trình biên dịch C ++ thực sự nhanh chóng cho Windows, hãy cố gắng giữ mọi thứ trong RAM và chạm vào hệ thống tệp càng ít càng tốt.
Đó cũng là cách bạn sẽ tạo ra một chuỗi biên dịch Linux C ++ nhanh hơn, nhưng nó ít quan trọng hơn trong Linux vì hệ thống tệp đã thực hiện rất nhiều điều chỉnh đó cho bạn.
Lý do cho điều này là do văn hóa Unix: Trong lịch sử hiệu năng hệ thống tệp đã được ưu tiên cao hơn nhiều trong thế giới Unix so với Windows. Không phải nói rằng nó không phải là ưu tiên trong Windows, chỉ là trong Unix nó đã được ưu tiên cao hơn.
Truy cập mã nguồn.
Bạn không thể thay đổi những gì bạn không thể kiểm soát. Thiếu quyền truy cập vào mã nguồn Windows NTFS có nghĩa là hầu hết các nỗ lực cải thiện hiệu suất đã được cải thiện phần cứng. Đó là, nếu hiệu suất chậm, bạn giải quyết vấn đề bằng cách cải thiện phần cứng: xe buýt, phương tiện lưu trữ, v.v. Bạn chỉ có thể làm rất nhiều nếu bạn phải giải quyết vấn đề chứ không phải khắc phục nó.
Truy cập vào mã nguồn Unix (ngay cả trước khi nguồn mở) phổ biến hơn. Do đó, nếu bạn muốn cải thiện hiệu suất, bạn sẽ giải quyết nó trong phần mềm trước (rẻ hơn và dễ dàng hơn) và phần cứng thứ hai.
Kết quả là, có nhiều người trên thế giới có bằng tiến sĩ bằng cách nghiên cứu hệ thống tệp Unix và tìm ra những cách mới lạ để cải thiện hiệu suất.
Unix có xu hướng hướng tới nhiều tệp nhỏ; Windows có xu hướng hướng tới một vài (hoặc một) tệp lớn.
Các ứng dụng Unix có xu hướng xử lý nhiều tệp nhỏ. Hãy nghĩ về một môi trường phát triển phần mềm: nhiều tệp nguồn nhỏ, mỗi tệp có mục đích riêng. Giai đoạn cuối cùng (liên kết) không tạo ra một tệp lớn nhưng đó là một tỷ lệ nhỏ.
Kết quả là, Unix đã tối ưu hóa các cuộc gọi hệ thống để mở và đóng tệp, quét các thư mục, v.v. Lịch sử của các tài liệu nghiên cứu Unix trải qua nhiều thập kỷ tối ưu hóa hệ thống tệp đặt nhiều suy nghĩ vào việc cải thiện quyền truy cập thư mục (tra cứu và quét toàn bộ thư mục), mở tệp ban đầu, v.v.
Các ứng dụng Windows có xu hướng mở một tệp lớn, giữ nó mở trong một thời gian dài, đóng nó khi hoàn tất. Hãy nghĩ về MS-Word. msword.exe (hoặc bất cứ điều gì) mở tệp một lần và nối thêm hàng giờ, cập nhật các khối nội bộ, v.v. Giá trị của việc tối ưu hóa việc mở tệp sẽ bị lãng phí thời gian.
Lịch sử của điểm chuẩn và tối ưu hóa Windows là về tốc độ người ta có thể đọc hoặc ghi các tệp dài. Đó là những gì được tối ưu hóa.
Đáng buồn là sự phát triển phần mềm đã có xu hướng về tình huống đầu tiên. Heck, hệ thống xử lý văn bản tốt nhất cho Unix (TeX / LaTeX) khuyến khích bạn đặt mỗi chương trong một tệp khác nhau và #incelling tất cả chúng lại với nhau.
Unix tập trung vào hiệu năng cao; Windows tập trung vào trải nghiệm người dùng
Unix bắt đầu trong phòng máy chủ: không có giao diện người dùng. Điều duy nhất người dùng nhìn thấy là tốc độ. Do đó, tốc độ là ưu tiên hàng đầu.
Windows khởi động trên máy tính để bàn: Người dùng chỉ quan tâm đến những gì họ thấy và họ thấy UI. Do đó, nhiều năng lượng được dành cho việc cải thiện giao diện người dùng hơn hiệu suất.
Hệ sinh thái Windows phụ thuộc vào sự lỗi thời theo kế hoạch. Tại sao tối ưu hóa phần mềm khi phần cứng mới chỉ là một hoặc hai năm?
Tôi không tin vào các thuyết âm mưu nhưng nếu tôi làm vậy, tôi sẽ chỉ ra rằng trong văn hóa Windows có ít khuyến khích hơn để cải thiện hiệu suất. Các mô hình kinh doanh Windows phụ thuộc vào những người mua máy mới như đồng hồ. (Đó là lý do tại sao giá cổ phiếu của hàng ngàn công ty bị ảnh hưởng nếu MS vận hành hệ điều hành trễ hoặc nếu Intel bỏ lỡ ngày phát hành chip.). Điều này có nghĩa là có một sự khuyến khích để giải quyết các vấn đề về hiệu suất bằng cách nói với mọi người để mua phần cứng mới; không phải bằng cách cải thiện vấn đề thực sự: hệ điều hành chậm. Unix đến từ giới hàn lâm nơi ngân sách eo hẹp và bạn có thể lấy bằng tiến sĩ bằng cách phát minh ra một cách mới để làm cho hệ thống tệp nhanh hơn; hiếm khi ai đó trong học viện nhận được điểm để giải quyết vấn đề bằng cách phát lệnh mua.
Ngoài ra, vì Unix là nguồn mở (ngay cả khi không có, mọi người đều có quyền truy cập vào nguồn), bất kỳ sinh viên tiến sĩ buồn chán nào cũng có thể đọc mã và trở nên nổi tiếng bằng cách làm cho nó tốt hơn. Điều đó không xảy ra trong Windows (MS có một chương trình cho phép các học giả truy cập vào mã nguồn Windows, nó hiếm khi bị lợi dụng). Nhìn vào lựa chọn các tài liệu hiệu suất liên quan đến Unix này: http://www.eecs.harvard.edu/margo/ con / hoặc tìm kiếm lịch sử của các bài báo của Osterhaus, Henry Spencer, hoặc những người khác. Heck, một trong những cuộc tranh luận lớn nhất (và thú vị nhất để theo dõi) trong lịch sử Unix là mối quan hệ qua lại giữa Osterhaus và Selzer http://www.eecs.harvard.edu/margo/ con / usenix95-lfs / sup lúc /rebuttal . html
Bạn không thấy điều đó xảy ra trong thế giới Windows. Bạn có thể thấy các nhà cung cấp hỗ trợ lẫn nhau, nhưng điều đó dường như hiếm hơn gần đây vì sự đổi mới dường như đều ở cấp độ cơ thể tiêu chuẩn.
Đó là cách tôi nhìn thấy nó.