주요 결과 :
PHP 리그의 CommonMark Markdown 파서는 원시 속도보다 확장 성을 우선시하여 BlackFire.io를 사용하여 성능 최적화를 거쳤습니다. 두 가지 주요 개선으로 인해 성능이 상당히 높아졌습니다
감소 호출 : 인라인 구문 분석 최적화 48,118로의 호출을 최적화하여 11% 전반적인 성능 개선을 초래했습니다. >
전화 감소 :
뉴 라인 취급을 정제하는 신생 처리를 87% 감소시켜 인라인 구문 분석 시간이 61% 감소하고 전체 속도가 23% 증가했습니다.
-
이러한 최적화의 결합 효과는 52.5%의 성능 이득을 제공했습니다. 이것은 성능 병목 현상을 식별하고 해결하기 위해 BlackFire.io와 같은 프로파일 링 도구의 중요성을 강조합니다.
일반적인 철학 :
CommonMark Parser는 CommonMark 사양 및 JavaScript 참조 구현에 대한 확장 성 및 준수를 우선시합니다. 이 설계 선택은보다 복잡하고 객체 지향적 인 구조를 만들어 내면 더 간단하고 빠른 파서에 비해 사용자 정의와 통합이 더 높아질 수 있습니다. 성능 차이는 최종 사용자 (특히 캐싱의 경우)에게는 무시할 수 있지만 최적화 노력은 여전히 가치있는 것으로 간주되었습니다.
Cursor::getCharacter()
.
프로파일 링을위한 BlackFire.io : Cursor::getCharacter()
성능 프로파일 링 도구 인 BlackFire.io는 성능 문제를 정확히 찾아내는 데 귀중한 것으로 판명되었습니다. 상세한 성능 추적은
및 - 방법 내에서 병목 현상을 정확하게 식별 할 수있게 해주었다.
최적화 세부 사항 :
NewlineParser::parse()
NewlineParser::parse()
최적화 1 : 초기 최적화는 의 특성을 대체하여
의 비전문 문자의 시퀀스를 효율적으로 처리하기 위해 의 문자 별 반복을 대체하는 것과 관련이 있습니다.
최적화 2 : 두 번째 최적화는 메소드에 중점을 둡니다. 하드 라인 브레이크 감지 로직을 간소화함으로써 개별 공간 문자에 대한 불필요한 검사가 제거되었습니다.
벤치 마크 결과 :
최적화 전에 CommonMark 사양 문서를 구문 분석하는 데 약 59ms가 걸렸습니다. 두 최적화를 구현 한 후, 파싱 시간은 28ms로 떨어졌습니다.
결론 : 이 사례 연구는 코드 성능을 최적화하는 데있어 프로파일 링의 중요한 역할을 강조합니다. Extensibility는 CommonMark의 주요 설계 목표 였지만 BlackFire.io는 파서의 핵심 기능을 손상시키지 않으면 서 상당한 성능 향상을 가능하게했습니다. 저자는 효율적이고 고성능 코드를 보장하기 위해 프로파일 링 도구 사용을 강력히 옹호합니다.
자주 묻는 질문 (faqs) :
제공된 FAQ는 이미 잘 구조화되어 있으며 CommonMark, BlackFire.io 및 최적화 프로세스에 대한 일반적인 질문에 답변합니다. 더 이상 수정이 필요하지 않습니다.
위 내용은 사례 연구 : BlackFire.io를 사용하여 CommonMark Markdown 파서 최적화의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!