PHP chậm hơn 93% so với Node.js

http://techmaster.vn/posts/33448/nodejs-cho-nguoi-moi-bat-dau

Bây giờ hãy quan sát các số liệu benchmark. Bảng danh sách sau đây chứa thời gian response, đơn vị tính là millisecond, cho hai ứng dụng đơn giản ở trên:

Tôi đã chạy hai ứng dụng ở trên từ command line vì vậy sẽ không có server nào làm trì hoãn sự thực thi của các ứng dụng. Tôi chạy mỗi phép thử 10 lần và lấy kết quả trung bình. PHP nhanh hơn đáng kể với số lượng vòng lặp nhỏ hơn, nhưng lợi thế đó nhanh chóng biến mất khi số lượng vòng lặp tăng lên. Và khi tất cả các phép thử hoàn thành, kết quả là PHP chậm hơn 93% so với Node.js!

Bạn đọc tiếp bài viết tại đây nhé: http://bit.ly/1JjXzkD

6 Likes

Thật không thể tin nổi anh @hungho làm ứng dụng nào với nodejs chưa ạ

1 Like

Mình cũng mới thử thôi, nhưng cái trang của bên TechMaster là làm từ Node.js đó Nghĩa

http://techmaster.vn/

1 Like

Hiện tại mình đang tham gia dự án Sails.Js ( một FrameWork nằm bên trong Node.Js ) thiên về MVC và xử lý trực tiếp trên Server . cảm nhận của mình là , đối với Sails.Js tuy mới và còn chưa hỗ trợ nhiều nhưng tốc độ của nó rất nhanh và mượt , tuân thủ hoàn toàn theo MVC . Node.Js tương lai sẽ còn tiến xa nữa (Y)

3 Likes

Cool nhỉ chắc rảnh rỗi em học Javascript với cái này keke

Theo kinh nghiệm của mình thì các bài thử này gần như vô nghĩa.

Vì sao? Vì bạn ko dùng PHP để lập trình tính toán mà dùng nó để làm website. Đối với các web application, thời gian chờ chủ yếu là I/O, request.

Giả sử 1 request gửi từ client lên server và dội về mất 500 milisecons, thì 1 vòng lặp 10.000 (có thể chấp nhận được trong code server) của node là 503 và của PHP là 510.53 như bài viết đề cập. Hoàn toàn không chênh lệch mấy. Nếu chỉ tính việc lặp trên server thì PHP chậm hơn Node hơn 3 lần (10.53 so với 3), nhưng tính trên tổng thể thì Node chỉ nhanh hơn PHP hơn tầm 1.5% trong ví dụ này và chắc chắn người dùng không thể phân biệt được sự khác biệt này.

Còn đối với số vòng lặp điên rồ > 1.000.000 mà các bạn thấy PHP thua hẵn NodeJs thì thử hỏi lập trình viên nào làm điều này? Những vòng lặp lớn đó thường được xử lý trong cơ sở dữ liệu chứ ko phải trong source code Node hay PHP của bạn. Cơ sở dữ liệu được sinh ra để giải quyết các vấn đề này. Và đương nhiên, tốc độ xử lý của db thì ko liên quan gì đến việc bạn dùng Node hay PHP.

Nói tóm lại là chuyện nhanh hay chậm thực sự ko phải là 1 vấn đề gì to tát trừ khi bạn dự định xây dựng những ứng dụng khổng lồ có hàng triệu lượt truy cập hằng ngày.

Còn đối với đại đa số các dự án như các mạng xã hội nhỏ, website tin tức, website bán hàng, blog… thì dùng gì cũng được, tuỳ sở thích của mỗi người.

Trước đây mình đã chứng kiến việc server của bọn mình bị sập do có hơn 120.000 truy cập/ngày. Lý do không nằm ở việc mình dùng PHP mà do mình dùng Apache. Sau khi đổi qua Nginx thì chạy vi vu, không phát sinh thêm bất kì vấn đề gì.

2 Likes

Việc benchmark này cũng phải tính tới các ext của PHP. Không biết người benchmark đã tắt các ext không dùng tới hay chưa? (vì khi parser, PHP vẫn phải load các ext này ra)

Ngoài ra, việc benchmark nên làm nhiều lần và lấy kết quả trung bình. Có khá nhiều thứ sẽ ảnh hưởng tới kết quả (IO threshold của disk, RAM, CPU load/usage …)

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?