TL; DR: Lua không có phí, nhưng nếu được sử dụng đúng cách, nó không đáng kể và dễ dàng được giảm nhẹ. Đừng sử dụng nó cho các hoạt động toán học nặng hoặc biến đổi hình học. Bạn có thể sẽ không thấy bất kỳ vấn đề hiệu suất nào khi sử dụng nó để tạo kịch bản cho GUI.
Tôi đã thực hiện một số điểm chuẩn cơ bản về hiệu suất của Lua như một ngôn ngữ kịch bản trò chơi và nó khá nhanh. Sử dụng tolua ++ để liên kết LuaJIT với công cụ trò chơi của tôi, tôi đã sinh ra 2.000 diễn viên, mỗi diễn viên được điều khiển bởi một kịch bản Lua được gọi là mỗi vòng lặp trò chơi (với một đối số theo thời gian). Một nửa trong số các diễn viên có kịch bản đổ xô và nửa còn lại đang thực hiện một bước đi ngẫu nhiên (và được đàn chiên tránh).
Tắt thành phần kết xuất đã cho tôi hơn 400 tick mỗi giây trên Opteron 170 của tôi (2x2.0GHz, mặc dù động cơ của tôi chỉ là một luồng vào thời điểm đó). Tôi tưởng tượng rằng tôi có thể đã vắt kiệt hơn một chút nếu tôi đào sâu và tối ưu hóa, có lẽ chuyển một số công việc nặng nề trở lại C ++. Cập nhật 2000 diễn viên 400 lần mỗi giây vẫn khá ấn tượng và vượt xa mong đợi của tôi vào thời điểm đó.
Bây giờ tôi sử dụng Lua trong tất cả các dự án của mình và nó thực sự chiếm một phần khá lớn trong mã trò chơi thực tế (AI, bố cục / logic GUI, Sự kiện / Tin nhắn). Làm cho trò chơi trở nên thú vị hơn khi bạn có thể nhanh chóng thay đổi thứ gì đó và kiểm tra nó mà không cần phải thoát ra, biên dịch lại và sắp xếp lại. Thỉnh thoảng tôi cũng gặp phải một số vấn đề về hiệu năng, nhưng chúng có thể được giải quyết dễ dàng bằng cách thực hiện lại mã vi phạm trong C ++ (và sau đó gọi nó từ Lua).
Mặc dù hơi lạc đề, các máy chủ của EVE Online được viết gần như hoàn toàn bằng Stackless Python (tôi tin rằng họ trì hoãn hầu hết các hoạt động toán học của họ với một C ++ lib), nặng hơn đáng kể so với Lua, và, dựa trên nghiên cứu cá nhân của tôi và một số có sẵn điểm chuẩn, hiệu suất thấp hơn nhiều so với LuaJIT. Họ quản lý để xử lý 30k + người chơi đồng thời mà không gặp quá nhiều vấn đề. Cấp, họ có rất nhiều phần cứng đắt tiền chạy tất cả, nhưng tôi tin rằng phần lớn chi phí nằm trong cụm cơ sở dữ liệu của họ ...
Lời xin lỗi cho bức tường văn bản.