Tôi cần phải viết một máy chủ sẽ nhận được hướng dẫn từ các mô-đun khác và thực hiện hành động tùy thuộc vào hướng dẫn nhận được. Hiệu quả là mối quan tâm chính của tôi. Vì vậy, tôi sử dụng gen_server
hoặc tôi viết máy chủ của riêng mình. Bằng cách "máy chủ của riêng tôi" Ý tôi là cái gì đó như:Erlang: gen_server hoặc máy chủ tùy chỉnh của riêng tôi?
-module(myserver).
-export([start/0, loop/0]).
start() ->
spawn(myserver, loop, []).
loop() ->
receive
{From, Msg} -> %Do some action here... ;
message2 -> %Do some action here...;
message3 -> %Do some action here...;
message4 -> %Do some action here...;
.
.
.
_-> ok
end,
loop().
Vì vậy, để sử dụng myserver
, tôi có lẽ sẽ đăng ký quá trình dưới một tên đăng ký trong khi bắt đầu nó, và sau đó mỗi khách hàng sẽ gửi tin nhắn đến máy chủ sử dụng pid này .
Vì vậy, tôi nên sử dụng phương pháp này, hoặc thay vào đó triển khai máy chủ bằng cách sử dụng hành vi gen_server
? Có lợi thế nào khi sử dụng gen_server
? Nhưng sẽ sử dụng gen_server
thêm bất kỳ chi phí nào, khi so sánh với myserver
?
Bạn đã rất quan tâm đến hiệu quả cho một vài câu hỏi trước đây. Bạn có bất kỳ số nào về các yêu cầu về hiệu suất không? – Christian
Ồ, và chắc chắn đi với gen \ _server cho đến khi bạn có thể đo lường vị trí tắc nghẽn của bạn. – Christian
Tôi không có bất kỳ số lượng nào để định lượng các yêu cầu hiệu suất cho hệ thống ngay bây giờ. Đây là một hệ thống thử nghiệm, vì vậy tất cả những gì tôi biết bây giờ là các máy chủ sẽ phải xử lý một lượng lưu lượng đáng kinh ngạc. Vì vậy, tôi đang cố gắng để có thêm ý thức về hiệu quả và tối ưu hóa càng nhiều càng tốt. – ErJab