WPML

Chúng tôi vừa phát hành WPML 4.3, bao gồm một cách hoàn toàn mới để dịch các chuỗi văn bản. Trang quản trị Dịch chuỗi trông giống như cũ nhưng hoạt động theo cách khác. Thay vì đọc các bản dịch từ cơ sở dữ liệu, nó tạo và tải các tệp .mo. Điều này giúp giảm đáng kể mức sử dụng cơ sở dữ liệu cho việc dịch chuỗi.

Tại sao chúng tôi viết lại Dịch chuỗi?


Phiên bản trước của tính năng dịch chuỗi đã tải các chuỗi văn bản từ cơ sở dữ liệu và cố gắng tránh tải các tệp .mo. Một số plugin WordPress lớn đi kèm với các tệp .mo khổng lồ, dùng để dịch mọi văn bản trong plugin. Ví dụ: các tệp .mo của WooCommerce có hơn 8.000 chuỗi văn bản một chút. Các plugin lớn khác cũng có số lượng chuỗi văn bản tương tự.

Khi bạn chạy một trang web bằng tiếng Anh, WordPress không tải các tệp .mo này. Tuy nhiên, khi bạn chạy một trang web bằng bất kỳ ngôn ngữ nào khác (chỉ một ngôn ngữ, không phải các trang web đa ngôn ngữ), WordPress sẽ tải tất cả các tệp .mo này. Việc tải các tệp này mất từ 100 ms đến hơn một giây, tùy thuộc vào máy chủ bạn đang sử dụng. Các tệp .mo này sẽ tải trên bất kỳ trang nào mà plugin chạy (thông thường là trên tất cả các trang của trang web).

Cho đến phiên bản WPML 4.3, chúng tôi đã cố gắng tối ưu hóa cơ chế này. WPML có một tùy chọn, được bật theo mặc định, để ngăn giao diện và plugin tải các tệp .mo. Thay vào đó, chúng tôi kiểm tra xem các chuỗi văn bản nào cần thiết cho mỗi trang và tải các chuỗi văn bản cụ thể này từ cơ sở dữ liệu.

Nhìn chung, cơ chế này hoạt động tốt nhưng đôi khi lại phản tác dụng. Khi một plugin truy xuất nhiều chuỗi văn bản trên mỗi lần tải trang, WPML sẽ tải một danh sách khổng lồ các chuỗi văn bản từ cơ sở dữ liệu thay vì để plugin tự tải tệp .mo của nó.

Khi một số plugin phát triển theo thời gian, cơ chế tối ưu hóa của chúng tôi ngày càng trở nên kém hiệu quả.

Trong WPML 4.3, chúng tôi quyết định đã đến lúc phải thay đổi cách tiếp cận. Chúng tôi đã ngừng chặn các tệp .mo và ngừng tải các chuỗi văn bản từ cơ sở dữ liệu. Giờ đây, WPML không cố gắng tối ưu hóa thời gian dịch của các plugin hoặc giao diện khác, mà chỉ tối ưu hóa các chuỗi văn bản của riêng nó.

Điều này sẽ ảnh hưởng đến thời gian tải trang web của tôi như thế nào?


Điều này còn tùy thuộc. Nếu trang web của bạn trước nay vẫn nhanh (điều mà phần lớn các trang web sử dụng WPML đều đạt được), bạn sẽ không cảm thấy sự thay đổi đáng kể nào về tốc độ. Ví dụ: trên wpml.org, hầu hết các trang đều nhanh hơn một chút và một vài trang mất nhiều thời gian hơn một chút để tải.

Lý do khiến một số trang hiện mất nhiều thời gian tải hơn một chút là vì có các plugin khác đang tải các tệp .mo khổng lồ. Tốc độ tăng lên nhờ việc tối ưu hóa dịch chuỗi đã bị triệt tiêu bởi thời gian tải tệp .mo của các plugin khác.

Tuy nhiên, những biến động này rất nhỏ và chúng tôi chỉ có thể đo lường chúng bằng các công cụ phân tích cấu hình nâng cao. Một trang web trước nay vẫn chạy nhanh nhìn chung sẽ tiếp tục chạy nhanh với WPML 4.3.

Một số trang web từng bị tải chậm giờ đây sẽ tải nhanh hơn nhiều. Trước WPML 4.3, một số trang web có hàng chục nghìn chuỗi văn bản cần tải từ cơ sở dữ liệu. Điều này gây ra tải trọng đáng kể cho cơ sở dữ liệu, tiêu tốn nhiều RAM và làm thời gian tải trang kéo dài. Các trang web này sẽ thấy hiệu suất được cải thiện rất đáng kể.

Sắp có thêm các bản tối ưu hóa hiệu suất nào không?


Có. Giờ đây khi đã loại bỏ được các vấn đề lớn về hiệu suất phát sinh từ việc dịch chuỗi, chúng tôi sẽ có nhiều cơ hội hơn để tối ưu hóa.

Chúng tôi dự đoán sẽ tìm thấy các vấn đề cần phải làm việc với các nhà phát triển giao diện và plugin khác. Hiệu suất cải thiện nhiều nhất khi các plugin và giao diện tải ít chuỗi văn bản hơn. Hầu hết các nhà phát triển giao diện và plugin khác đều sẵn sàng hợp tác với chúng tôi và chúng tôi tự tin rằng mình có thể giải quyết gần như mọi vấn đề về hiệu suất tiếp theo. Quy trình tối ưu hóa gần như luôn giống nhau:


  • Chia nhỏ các tệp .mo khổng lồ thành nhiều tệp nhỏ hơn

  • Tải đúng tệp trên đúng trang

Sự phân đoạn đơn giản nhất là giữa các chuỗi văn bản được sử dụng trên trang quản trị và các chuỗi văn bản hiển thị trên giao diện người dùng. Các tối ưu hóa sâu hơn sẽ tiếp tục chia nhỏ các chuỗi văn bản trên giao diện người dùng theo loại trang. Ví dụ: trên các trang web thương mại điện tử, không cần thiết phải tải các chuỗi văn bản được sử dụng trong quá trình thanh toán trên mọi trang.

Tất nhiên, khi có cơ hội tối ưu hóa ngay trong bản thân WPML, chúng tôi sẽ xử lý ngay lập tức.

Cập nhật, đo lường và báo cáo


WPML 4.3 hiện đang được triển khai. Chúng tôi sẽ phát hành dần dần trong một hoặc hai tuần. Nếu các trang web của bạn chưa nhận được bản cập nhật này, hãy đợi thêm một thời gian và bạn sẽ thấy bản cập nhật sau vài ngày. Bạn có thể bỏ qua hàng đợi và nhận bản cập nhật này ngay lập tức bằng cách truy cập trang Plugin –> Thêm mới, nhấp vào tab Thương mại và sau đó sử dụng nút Kiểm tra cập nhật .

Nếu bạn cảm thấy bất kỳ trang nào trên trang web của mình mất nhiều thời gian tải hơn, chúng tôi khuyên bạn nên cài đặt plugin Query Monitor (làm theo hướng dẫn của chúng tôi về cách phân tích các vấn đề hiệu suất với Query Monitor). Lưu ý rằng trong WPML 4.3, chúng tôi đã khắc phục các vấn đề tương thích đáng kể với Query Monitor, vì vậy các báo cáo mà bạn thấy sẽ không hữu ích cho các phiên bản trước WPML 4.3.

Hãy xem liệu các lệnh gọi WPML có xuất hiện nhiều trong các báo cáo tải trang hay không. Nếu có, vui lòng báo cáo cho chúng tôi tại mục hỗ trợ kỹ thuật của WPML. Ngay cả khi bạn thấy các chủ đề có vẻ tương tự, hãy bắt đầu chủ đề của riêng bạn. Chúng tôi sẽ cần quyền truy cập vào trang web của bạn, vì vậy tốt hơn là nên làm việc riêng trên từng trang web.

Tất nhiên, chúng tôi sẽ rất vui khi nghe các cập nhật chung của bạn về hiệu suất (việc báo cáo về các cải thiện cũng hữu ích không kém 🙂). Hãy để lại bình luận của bạn tại đây và chúng tôi sẽ phản hồi lại.

Bạn thấy bài viết này hữu ích? Hãy chia sẻ bài viết này: