WPML

เราเพิ่งเผยแพร่ WPML 4.3 ซึ่งรวมถึงวิธีการใหม่ทั้งหมดในการแปลสตริง หน้าจัดการเว็บไซต์ของการแปลสตริงมีลักษณะเหมือนเดิมแต่ทำงานต่างไปจากเดิม แทนที่จะอ่านคำแปลจากฐานข้อมูล ระบบจะสร้างและโหลดไฟล์ .mo สิ่งนี้ส่งผลให้การใช้ฐานข้อมูลสำหรับการแปลสตริงลดลงอย่างมาก

ทำไมเราถึงเขียนระบบการแปลสตริงใหม่


การแปลสตริงเวอร์ชันก่อนหน้าจะโหลดสตริงจากฐานข้อมูลและพยายามหลีกเลี่ยงการโหลดไฟล์ .mo ปลั๊กอิน WordPress ขนาดใหญ่บางตัวมาพร้อมกับไฟล์ .mo ขนาดใหญ่ ซึ่งแปลข้อความทุกส่วนในปลั๊กอิน ตัวอย่างเช่น ไฟล์ .mo ของ WooCommerce มีสตริงมากกว่า 8,000 สตริงเล็กน้อย ปลั๊กอินขนาดใหญ่อื่น ๆ ก็มีจำนวนสตริงใกล้เคียงกัน

เมื่อคุณใช้งานเว็บไซต์ในภาษาอังกฤษ WordPress จะไม่โหลดไฟล์ .mo เหล่านี้ อย่างไรก็ตาม เมื่อคุณใช้งานเว็บไซต์ในภาษาอื่น (เพียงภาษาเดียว ไม่ใช่เว็บไซต์หลายภาษา) WordPress จะโหลดไฟล์ .mo เหล่านี้ทั้งหมด การโหลดไฟล์เหล่านี้ใช้เวลาตั้งแต่ 100 ms ถึงมากกว่าหนึ่งวินาที ขึ้นอยู่กับเซิร์ฟเวอร์ที่คุณกำลังใช้งาน ไฟล์ .mo เหล่านี้จะโหลดในทุกหน้าที่ปลั๊กอินทำงาน (โดยทั่วไปคือในทุกหน้าของเว็บไซต์)

จนถึง WPML 4.3 เราได้พยายามเพิ่มประสิทธิภาพกลไกนี้ WPML มีตัวเลือกซึ่งเปิดใช้งานโดยค่าเริ่มต้น เพื่อป้องกันไม่ให้ธีมและปลั๊กอินโหลดไฟล์ .mo แต่เราจะตรวจสอบว่าหน้าแต่ละหน้าต้องการสตริงใดบ้างและโหลดสตริงเฉพาะเหล่านี้จากฐานข้อมูลแทน

โดยทั่วไปกลไกนี้ทำงานได้ดี แต่บางครั้งก็ส่งผลเสีย เมื่อปลั๊กอินเรียกใช้สตริงจำนวนมากในการโหลดหน้าเว็บแต่ละครั้ง WPML จะโหลดรายการสตริงจำนวนมหาศาลจากฐานข้อมูลแทนที่จะปล่อยให้ปลั๊กอินโหลดไฟล์ .mo ของตัวเอง

เมื่อปลั๊กอินบางตัวมีขนาดใหญ่ขึ้นเมื่อเวลาผ่านไป กลไกการเพิ่มประสิทธิภาพของเราก็มีประสิทธิภาพลดลงเรื่อย ๆ

ใน WPML 4.3 เราตัดสินใจว่าถึงเวลาเปลี่ยนแนวทางแล้ว เราได้หยุดบล็อกไฟล์ .mo และหยุดโหลดสตริงจากฐานข้อมูล ตอนนี้ WPML ไม่พยายามเพิ่มประสิทธิภาพเวลาการแปลของปลั๊กอินหรือธีมอื่น ๆ อีกต่อไป และจะเพิ่มประสิทธิภาพเฉพาะสตริงของตัวเองเท่านั้น

สิ่งนี้จะส่งผลต่อเวลาในการโหลดเว็บไซต์ของฉันอย่างไร


ขึ้นอยู่กับสถานการณ์ หากเว็บไซต์ของคุณทำงานเร็วมาจนถึงตอนนี้ (ซึ่งเว็บไซต์ส่วนใหญ่ที่ใช้ WPML เป็นเช่นนั้น) คุณจะไม่รู้สึกถึงความเปลี่ยนแปลงของความเร็วอย่างมีนัยสำคัญ ตัวอย่างเช่น บน wpml.org หน้าส่วนใหญ่จะเร็วขึ้นเล็กน้อยและมีบางหน้าที่ใช้เวลาโหลดนานขึ้นเล็กน้อย

เหตุผลที่บางหน้าใช้เวลาโหลดนานขึ้นเล็กน้อยในตอนนี้เป็นเพราะมีปลั๊กอินอื่น ๆ ที่โหลดไฟล์ .mo ขนาดใหญ่ ความเร็วที่เพิ่มขึ้นจากการเพิ่มประสิทธิภาพการแปลสตริงถูกหักล้างด้วยเวลาในการโหลดไฟล์ .mo ของปลั๊กอินอื่น ๆ

อย่างไรก็ตาม ความผันผวนเหล่านี้มีขนาดเล็กมากและเราสามารถวัดได้ด้วยเครื่องมือวิเคราะห์ขั้นสูงเท่านั้น เว็บไซต์ที่ทำงานเร็วมาจนถึงตอนนี้โดยทั่วไปจะยังคงทำงานได้เร็วต่อไปเมื่อใช้ WPML 4.3

บางเว็บไซต์ที่ประสบปัญหาเวลาในการโหลดช้าจะโหลดเร็วขึ้นมากในตอนนี้ ก่อน WPML 4.3 บางเว็บไซต์มีสตริงนับหมื่นที่ต้องโหลดจากฐานข้อมูล สิ่งนี้ทำให้เกิดภาระงานอย่างมากต่อฐานข้อมูล ใช้ RAM เป็นจำนวนมาก และทำให้เวลาในการโหลดหน้าเว็บยาวนาน เว็บไซต์เหล่านี้จะเห็นการปรับปรุงประสิทธิภาพอย่างมีนัยสำคัญ

จะมีการเพิ่มประสิทธิภาพเพิ่มเติมอีกหรือไม่


มีแน่นอน ตอนนี้เราได้จัดการกับปัญหาประสิทธิภาพหลักที่มาจากการแปลสตริงแล้ว เราจะมีโอกาสมากขึ้นในการเพิ่มประสิทธิภาพ

เราคาดว่าจะพบปัญหาที่ต้องทำงานร่วมกับผู้พัฒนาปลั๊กอินและธีมอื่น ๆ ประสิทธิภาพจะดีขึ้นมากที่สุดเมื่อปลั๊กอินและธีมโหลดสตริงน้อยลง ผู้พัฒนาปลั๊กอินและธีมอื่น ๆ ส่วนใหญ่ยินดีที่จะทำงานร่วมกับเรา และเรามั่นใจว่าเราสามารถแก้ไขปัญหาประสิทธิภาพเกือบทั้งหมดที่จะเกิดขึ้นต่อไปได้ กระบวนการเพิ่มประสิทธิภาพมักจะเหมือนเดิมเสมอ:


  • แยกไฟล์ .mo ขนาดใหญ่เป็นไฟล์ขนาดเล็กหลาย ๆ ไฟล์

  • โหลดไฟล์ที่ถูกต้องในหน้าที่ถูกต้อง

การแบ่งส่วนทั่วไปคือระหว่างสตริงที่ใช้ในหน้าจัดการเว็บไซต์และสตริงที่แสดงในส่วนหน้าเว็บไซต์ การเพิ่มประสิทธิภาพเชิงลึกจะแบ่งสตริงส่วนหน้าเว็บไซต์ตามประเภทของหน้า ตัวอย่างเช่น ในเว็บไซต์อีคอมเมิร์ซ ไม่จำเป็นต้องโหลดสตริงที่ใช้ในกระบวนการชำระเงินในทุกหน้า

แน่นอนว่าเมื่อมีโอกาสในการเพิ่มประสิทธิภาพภายใน WPML เอง เราจะจัดการทันที

อัปเดต วัดผล และรายงาน


ขณะนี้กำลังมีการปรับใช้ WPML 4.3 เรากำลังทยอยเผยแพร่ในช่วงหนึ่งถึงสองสัปดาห์ หากเว็บไซต์ของคุณยังไม่ได้รับการอัปเดตนี้ โปรดรอสักครู่และคุณจะเห็นการอัปเดตในอีกไม่กี่วัน คุณสามารถข้ามคิวและรับการอัปเดตนี้ได้ทันทีโดยไปที่หน้า ปลั๊กอิน –> เพิ่มใหม่ คลิกแท็บ เชิงพาณิชย์ แล้วใช้ปุ่ม ตรวจสอบการอัปเดต

หากคุณรู้สึกว่าหน้าใดบนเว็บไซต์ของคุณใช้เวลาโหลดนานขึ้น เราขอแนะนำให้คุณติดตั้งปลั๊กอิน Query Monitor (ทำตาม บทช่วยสอนของเราเกี่ยวกับวิธีวิเคราะห์ปัญหาประสิทธิภาพด้วย Query Monitor) โปรดทราบว่าใน WPML 4.3 เราได้แก้ไขปัญหาความเข้ากันได้ที่สำคัญกับ Query Monitor ดังนั้นรายงานที่คุณเห็นจะไม่มีประโยชน์สำหรับเวอร์ชันก่อน WPML 4.3

ดูว่าการเรียกใช้ WPML โดดเด่นในรายงานการโหลดหรือไม่ หากเป็นเช่นนั้น โปรดรายงานให้เราทราบใน ฝ่ายสนับสนุนด้านเทคนิคของ WPML แม้ว่าคุณจะเห็นกระทู้ที่ดูเหมือนจะคล้ายกัน แต่ให้เริ่มกระทู้ของคุณเอง เราจำเป็นต้องเข้าถึงเว็บไซต์ของคุณ ดังนั้นจึงเป็นการดีกว่าที่จะทำงานในแต่ละเว็บไซต์แยกกัน

แน่นอนว่าเรายินดีเป็นอย่างยิ่งที่จะรับฟังการอัปเดตทั่วไปของคุณเกี่ยวกับประสิทธิภาพ (การรายงานการปรับปรุงก็มีประโยชน์ไม่แพ้กัน 🙂) แสดงความคิดเห็นของคุณที่นี่และเราจะติดต่อกลับไป

พบว่าสิ่งนี้มีประโยชน์หรือไม่? แชร์บทความนี้: