Tôi đang phát triển một số thuật toán trong Lua, phần lớn được chạy trong Lua (vài cuộc gọi đến C ++) và tôi nhận thấy sự chậm chạp rất lớn khi tôi chạy chúng từ ứng dụng của mình thay vì trình thông dịch Lua mặc định. Kịch bản trở lại sau khoảng 11 giây với trình thông dịch và khoảng hơn 5 phút với chương trình của tôi.
Tôi không nghĩ rằng đó là một vấn đề với việc gọi hàm C ++, việc ghi đè hàm đó bằng một hàm trống trong tập lệnh không có tác dụng đáng chú ý về thời gian.
Cả Lua và chương trình đều được biên dịch với Visual Studio 2010 (Tôi đã tạo ra một giải pháp mới cho Lua, với các dự án cho cả trình thông dịch và thư viện tĩnh)
Tôi đã chạy một trình lược tả mã (trình biên dịch Rất buồn ngủ, không thể làm cho trình lược tả Lua hoạt động nhưng chưa cố gắng nhiều) và thấy rằng trong ứng dụng của tôi, khoảng 50% thời gian dành cho malloc .. và 40% miễn phí, cả hai được gọi từ trình thu gom rác Lua (đã cố gắng vô hiệu hóa để kiểm tra, nhưng nó gặp sự cố khi sử dụng nhiều bộ nhớ (có thể hiểu được), trình thông dịch Lua nhìn thấy khoảng 4mb sử dụng ram).
Tôi mới đến Lua, vì vậy rất có thể tôi đã làm gì đó sai ở đâu đó, có ai có một vài gợi ý để thử không?