WPML

WPML 3.5에는 문자열 번역에 대한 주요 변경 사항이 포함되었습니다. 이 버전을 출시한 후 개발 중에는 나타나지 않았던 여러 사례를 알게 되었습니다. 후속 업데이트는 모든 문제를 처리하고 성능을 더욱 향상합니다.

WPML 3.5 이후 수정 사항


  • icl_strings 테이블에 domain_name_context_md5 열이 없는 경우 처리되지 않은 예외 수정

  • 고유주소 필터링 시 발생하는 Fatal error: Uncaught exception ‘InvalidArgumentException’ with message ‘Argument ID must be numeric and greater than 0 오류 수정

  • 업그레이드 중 나타나는 치명적인 오류(WordPress database error: specified key was too long; max key length is 1000) 수정

  • PHP 5.2에서 발생하는 Fatal error: Declaration of WPML_Post_Element::get_type() must be compatible with that of WPML_Translation_Element::get_type() 오류 수정

  • PHP 5.3 이전 버전에서 경고를 방지하기 위해 선행 백슬래시 \ 제거

속도 향상


어떤 페이지에 어떤 문자열이 나타나는지 저장하는 새 테이블을 약간 조정했습니다. 이러한 변경으로 테이블 크기가 크게 줄고 성능이 향상되며 메모리 소비가 감소합니다.

  • 중복이 있는 하나의 큰 테이블을 작고 효율적인 두 개의 테이블로 분할

  • 테이블 인덱스 최적화

  • 페이지 선택을 수정하는 인수의 허용 목록을 사용하여 URL 인수를 사용하는 사이트의 테이블 증가 가능성 제한

결과


버전 업데이트 중 당사 사이트의 성능을 측정했습니다. 부하가 감소했다가 (테이블 인덱스가 최적화되지 않았을 때) 증가한 다음, 현재 다시 원래 수준 이하로 떨어진 것을 확인할 수 있습니다.
WPML 3.4 - 매우 많은 문자열을 미리 로드하기 때문에 문자열 번역을 로드하는 데 시간이 더 오래 걸립니다.
WPML 3.4 – 매우 많은 문자열을 미리 로드하기 때문에 문자열 번역을 로드하는 데 시간이 더 오래 걸립니다.
문자열 번역 로드 시간은 단축되었지만, 이제 큰 string_pages 테이블이 생겼습니다.
문자열 번역 로드 시간은 단축되었지만, 이제 큰 string_pages 테이블이 생겼습니다.
string_pages 테이블을 두 개의 작은 테이블로 분할했지만, 추가 인덱스로 인해 선택이 느려집니다.
string_pages 테이블을 두 개의 작은 테이블로 분할했지만, 추가 인덱스로 인해 선택이 느려집니다.
더 작은 테이블과 올바른 인덱스. 마침내 해결되었습니다.
더 작은 테이블과 올바른 인덱스. 마침내 해결되었습니다.

이 모든 그래프의 절대적인 수치는 요일마다 다르게 측정되었기 때문에 중요성이 떨어집니다. 금요일에는 월요일보다 트래픽이 훨씬 적습니다. 변경 사항을 이해하려면 세그먼트 간의 비율을 살펴보세요. 원래 icl_strings 액세스는 글을 가져오는 것과 거의 동일한 시간이 걸렸음을 알 수 있습니다(이는 좋은 현상이 아닙니다). 이제 WPML의 모든 데이터베이스 액세스는 글 쿼리의 평균 1/3을 차지합니다. WPML은 매우 많은 문자열을 로드해야 하는 반면 WordPress는 몇 개의 글만 필요로 하므로 이는 매우 의미 있는 결과입니다.

다음번의 더 나은 프로세스


이 업데이트에는 WordPress 4.6에 대한 변경 사항이 포함되어 있었기 때문에 전체 성능 측정을 실행하기 전에 릴리스해야 했습니다. 앞으로는 WordPress 호환성과 성능 향상을 분리하도록 하겠습니다. 새 버전의 WordPress가 “출시 후보(release candidate)”에 도달하는 즉시 호환성 변경 사항만 포함된 마이너 릴리스를 진행할 예정입니다. 버그 수정 및 호환성 업데이트와 무관하게 장기적인 성능 변경을 실행할 시간을 확보하고, 결과에 매우 만족한 후에만 릴리스하겠습니다.

WPML의 다음 릴리스에서도 안정성과 성능에 중점을 둘 것입니다. 현재 WPML을 실행하는 사이트의 99%가 원활하게 작동하고 있지만, 웹 서버, PHP 또는 데이터베이스의 “고유한” 구성을 사용하는 사이트가 몇 군데 있습니다. 다가오는 마이너 릴리스에서 이러한 문제를 해결할 예정입니다. 또한 관리 화면과 프런트엔드를 모두 더 가볍게 만들 몇 가지 성능 최적화도 추가로 포함할 계획입니다.

피드백이 있으신가요?


질문, 아이디어 및 제안 사항이 있으면 댓글을 남겨주세요. 피드백을 보내주시면 감사하겠으며, 필요한 기능을 제공하기 위해 최선을 다하겠습니다.

이 글이 유용했나요? 이 글을 공유하세요: