Bất cứ công nghệ ảo hóa nào tôi đang sử dụng
Bạn còn nhớ những ngày mà các hệ thống có hơn 512 MB RAM được coi là xuất huyết không? Tôi dành ngày của tôi để viết mã cho trước.
Tôi làm việc chủ yếu trên các chương trình cấp thấp chạy trên miền đặc quyền trong môi trường Xen. Mức trần của chúng tôi cho miền đặc quyền là 512 MB, để lại phần còn lại của RAM miễn phí cho khách hàng sử dụng. Nó cũng là điển hình cho chúng tôi giới hạn miền đặc quyền chỉ trong một lõi CPU.
Vì vậy, tôi ở đây, viết mã sẽ chạy trên một máy chủ hoàn toàn mới $ 6k và mỗi chương trình phải hoạt động (lý tưởng) trong mức trần được phân bổ 100kb hoặc phân bổ bộ nhớ động hoàn toàn.
Chính xác, tôi tối ưu hóa cho:
- Mức chiếm dụng bộ nhớ
- Sắp xếp (nơi phần lớn mã của tôi dành phần lớn thời gian)
Tôi cũng phải cực kỳ siêng năng khi phải dành thời gian chờ đợi khóa, chờ I / O hoặc chỉ chờ đợi nói chung. Một lượng đáng kể thời gian của tôi dành cho việc cải thiện các thư viện ổ cắm không chặn hiện có và xem xét các phương pháp thực tế hơn về lập trình khóa miễn phí.
Mỗi ngày tôi thấy hơi mỉa mai rằng tôi đang viết mã giống như tôi đã làm 15 năm trước, trên các hệ thống được mua vào tháng trước, do những tiến bộ trong công nghệ.
Đây là điển hình cho bất kỳ ai làm việc trên các nền tảng nhúng, mặc dù nhiều người trong số họ có ít nhất 1GB theo ý của họ. Như Jason chỉ ra, nó cũng là điển hình khi viết chương trình để chạy trên thiết bị di động. Danh sách này tiếp tục, kiốt, khách hàng mỏng, khung ảnh, v.v.
Tôi bắt đầu nghĩ rằng các hạn chế phần cứng thực sự tách biệt các lập trình viên khỏi những người có thể làm một cái gì đó hoạt động mà không quan tâm đến những gì nó thực sự tiêu thụ. Tôi lo lắng (bỏ phiếu cho tôi nếu bạn phải) những ngôn ngữ hoàn toàn trừu tượng và kiểm tra bộ nhớ đối với nhóm chung có ý nghĩa chung (trước đây) được chia sẻ giữa các lập trình viên thuộc nhiều lĩnh vực khác nhau.