Tôi có trang web php 5.4
/mysql
với 5 triệu lượt truy cập mỗi ngày, chạy trên máy chủ Linux có nginx
và php-fpm
. Cơ sở dữ liệu nằm trên một máy chủ riêng biệt.Bất kỳ cách nào để giảm htmlspecialchars() CPU sử dụng?
Tôi đã nhận thấy rằng vào thời điểm cao điểm, tải máy chủ web của tôi lên đến 15, thay vì bình thường 4 cho bộ vi xử lý lõi tứ. Tôi đã lược tả ứng dụng php của mình với xdebug
và xhprof và thấy rằng 90% công việc CPU được thực hiện bằng chức năng htmlspecialchars()
trong Twig
mẫu mà tôi sử dụng để hiển thị dữ liệu. Đôi khi, từ 100 đến 1000 htmlspecialchars()
cuộc gọi trên mỗi trang. Tôi đã cố gắng giảm thoát không tự nguyện, nhưng nó vẫn không thể tránh được.
Có cách nào tôi có thể giảm mức sử dụng CPU theo chức năng htmlspecialchars()
không? Có lẽ có một số loại bộ nhớ đệm trong php cho điều này? Hay có cách nào khác?
nếu bạn thoát quá nhiều dữ liệu, có thể tốt hơn là lưu trữ dữ liệu đã thoát? –
@Artjom Kurapov, hầu hết dữ liệu được thêm bởi người dùng. Để cho phép họ chỉnh sửa nó, tôi sẽ phải unescape nó và sau đó thoát khỏi nó một lần nữa, đó sẽ là một nỗi đau thực sự. Đó chỉ là một trong những trường hợp ... –
Nếu bạn thiếu CPU nhưng không phải trên dung lượng lưu trữ, bạn có thể lưu trữ cả hai thoát khỏi một chế độ không thoát. Thoát một lần, khi được cập nhật và bất cứ khi nào người dùng muốn chỉnh sửa, hãy sử dụng phiên bản gốc. Đây là một cái gì đó tôi sử dụng với markdown và tôi đã hài lòng với kết quả. – Maerlyn