nói dối e blog

IOCP, Kqueue, Epoll... Quan Trọng Đến Mức Nào?

Khi thiết kế máy chủ game MMO, tôi thường nghe những lời khuyên truyền thống rằng hàm select() rất kém hiệu quả khi xử lý hàng ngàn kết nối đồng thời. Thay vào đó, chúng ta nên dùng các công nghệ hiện đại như IOCP (trên Windows), kqueue (trên FreeBSD) hay epoll (trên Linux). Điều này hoàn toàn chính xác - select() thực sự chậm vì mỗi lần kernel phải quét toàn bộ danh sách socket được truyền vào. Anh Chen Rong từng ví von tại Thượng Hải rằng đây là kiểu “kỹ thuật lùng sục thôn xóm”: kiểu gì cũng phải hỏi đi hỏi lại “Kẻ địch đã vào làng chưa? Kẻ địch đã vào làng chưa?”… khiến CPU luôn trong tình trạng bận rộn. Chưa kể trên Windows còn có giới hạn ngặt nghèo là chỉ xử lý được tối đa 64 socket mỗi lần!

Nguyên Tắc Công Bằng Shapley

Nguyên tắc công bằng Shapley và bài toán phân chia lợi nhuận
Một bài toán kinh tế thú vị đã khiến tôi phải suy ngẫm suốt cả ngày hôm nay. Giả sử có một doanh nghiệp với mô hình đặc biệt: Khi kết hợp một ông chủ và một kỹ sư sẽ tạo ra 30 triệu lợi nhuận. Hai vị trí này mang tính then chốt - nếu thiếu bất kỳ ai, công ty sẽ không thể vận hành. Khi đã có bộ đôi này, cứ mỗi công nhân được thuê thêm sẽ đóng góp thêm 30 triệu lợi nhuận. Tuy nhiên, đến công nhân thứ ba trở đi thì hiệu quả không còn tăng thêm. Như vậy, với 2 công nhân, tổng lợi nhuận đạt 90 triệu đồng. Câu hỏi đặt ra là: Làm thế nào để phân chia khoản tiền này một cách công bằng nhất cho 4 người liên quan?

Số Phận Của Lập Trình Viên

Cuộc họp định kỳ hàng tuần của nhóm diễn ra vào lúc 3 giờ chiều thứ Hai. Nhóm nhỏ của chúng tôi họp không quá nghiêm túc, đặc biệt gần dịp nghỉ lễ 30/4 - 1/5 nên không khí càng thêm sôi động. Chỉ nửa tiếng sau, cuộc trò chuyện đã chuyển sang đủ thứ chuyện ngoài công việc.

Kế hoạch du lịch tháng Năm đang được bàn tán sôi nổi thì bất ngờ một thành viên ngậm ngùi từ chối tham gia. Lý do là vì những ngày đó vợ anh ấy dự sinh mổ. Nghe nói do một số nguyên nhân đặc biệt nên họ có thể tự chọn ngày tốt lành cho ca sinh, coi như một món quà bất ngờ từ số phận vậy :D

Vấn Đề Đăng Nhập Lại Vào Thư Mục Chia Sẻ

Trong văn phòng của chúng tôi, một máy chủ Samba đã được thiết lập để lưu trữ các tệp tin dùng chung. Thư mục chia sẻ này được bảo vệ bởi hai loại mật khẩu: một cho phép chỉ đọc và một cho phép đọc - ghi. Để thuận tiện, hệ điều hành Windows luôn được cài đặt để tự động lưu mật khẩu. Vì công việc của tôi liên quan đến việc cập nhật và quản lý các tài liệu, tôi sử dụng mật khẩu có quyền đọc - ghi.

Vấn Đề Đồng Bộ Hóa Và Đồng Hồ Trong Game Online

Trong hầu hết các game mạng thời gian thực, việc đồng bộ hóa thời gian giữa server và client mang lại nhiều lợi ích trong thiết kế hệ thống. Tuy nhiên, việc đồng bộ này không yêu cầu chỉnh sửa đồng hồ hệ điều hành của client, mà chỉ cần đồng bộ hóa thời gian logic bên trong game client với server.

Cơ chế đồng bộ thời gian cơ bản

Một phương pháp phổ biến là client gửi gói tin “ping” chứa thời điểm gửi gói đến server. Khi nhận được gói tin, server sẽ ghi lại thời gian hiện tại và gửi lại cho client. Do server thường xử lý gói tin với độ trễ nhất định, client có thể tính được thời gian gói tin lưu trú trong hệ thống server bằng cách lấy thời gian server phản hồi trừ đi thời gian xử lý.

无标题

Đọc một cuốn sách

Đọc một cuốn sách

Đọc một cuốn sách

Đã hoàn thành cuốn sách “Đạo lý tối giản” - một tác phẩm bàn luận về kỹ nghệ phần mềm. Tôi tiếp cận phiên bản điện tử do tác giả chia sẻ miễn phí trên trang cá nhân. Dù đến nay vẫn chưa hình thành hứng thú đặc biệt với lĩnh vực kỹ nghệ phần mềm, nhưng điều đó không cản trở tôi tìm hiểu những tri thức mới mẻ. Phong cách hành văn súc tích, cô đọng của tác phẩm khiến tôi say mê. Theo quan điểm cá nhân, khi luận bàn về đạo lý, chỉ cần làm rõ bản chất vấn đề là đủ, các ví dụ minh họa đôi khi trở nên thừa thãi. Đối với tôi, giá trị của việc đọc sách nằm ở hai khía cạnh: khơi gợi tư duy phản biện và mở rộng tầm nhìn nhận thức. Chỉ cần đạt được một trong hai mục tiêu này đã là thành công lớn.

0%