게시글이 길어질수록 편집기가 사용할 수 없을 정도로 느려집니다

다음 포럼에 이 게시물을 올렸습니다:

또한 데모 포럼에서도 이 문제를 재현할 수 있었습니다.

해당 게시물에는 복사해서 붙여넣은 긴 코드 추출물이 포함되어 있습니다. 더 정확히 말하면, 코드라기보다는 명령어를 실행했을 때의 출력 결과에 가깝습니다. 소프트웨어와 컴퓨터 관련 지원 포럼에서는 꽤 흔한 사용 사례입니다.

게시물을 작성하던 중, 긴 텍스트 블록(사실 그렇게 길지 않고, 고작 몇백 줄 정도)을 붙여넣은 후부터는 단순히 타이핑만 해도 편집기가 점점 더 느려졌습니다. 키보드에서 입력한 글자가 화면에 표시되는 데 시간이 걸렸고(라이브 프리뷰가 아니라, 직접 타이핑하는 텍스트 영역 자체를 말하는 것입니다) 결국 거의 사용할 수 없는 상태가 되었습니다.

아니요. Discourse는 무료 오픈소스 소프트웨어입니다.

이것을 편집기에 복사/붙여넣기하면 재현할 수 있습니다. 실제로 짜증나게 느려집니다.

3개의 좋아요

흥미롭네요, 제 환경에서는 재현이 되지 않습니다:

해당 포럼의 업데이트가 뒤처져 있는 것 같습니다. 지난주에 HighlightJS 라이브러리를 최신 버전으로 업데이트하는 변경 사항을 병합했는데, 이로 인해 속도가 훨씬 빨라질 것입니다.

또한, https://forum.manjaro.org 인스턴스에는 autohighlight all code 설정이 적용되어 있는데, 코드 블록이 포함된 대부분의 게시글이 실제 코드가 아닌 단순 로그 파일인 지원 포럼에서는 좋은 아이디어가 아닙니다. 해당 팀에 이 설정을 최대한 빨리 비활성화하도록 권장합니다.

그 외, 메인 브라우저 스레드에서 1만 줄 이상의 코드 하이라이팅을 수행하면 일부 기기에서 눈에 띄게 느려질 수 있으며, 안드로이드 폰에서 GitHub diff를 열 때 이 현상을 매우 쉽게 확인할 수 있습니다. 이를 백그라운드 JS 워커에서 수행하도록 할 계획이지만, 몇 가지 단점이 있어 아직着手하지 못했습니다.

3개의 좋아요

아, 죄송합니다. 홈페이지에서 큰 “무료로 사용해 보기” 버튼이 있어서, 무료는 시범 사용만 가능하다는 의미인 줄 알았거든요. 게다가 가격(Pricing) 섹션에는 무료 플랜에 대한 언급이 없었기 때문입니다. 좀 더 자세히 살펴봤어야 했는데, 아마 그것들은 호스팅 플랜이거나 그런 것인 것 같습니다.

또한, https://forum.manjaro.org 인스턴스에는 모든 코드 자동 하이라이트 설정이 있습니다

네, 그것도 이미 알아차렸고 아마도 그들의 설정 오류일 것이라 추측했지만, 그건 이 문제와는 무관합니다. 저는 길이가 동일한 합법적인 자바스크립트 코드 조각을 붙여넣을 수도 있었을 겁니다. 아니면 실제로 문제가 잘못된 문법으로 코드가 하이라이트될 때만 트리거되는 것이라 해도, 코드 블록 밖의 편집기가 느려지는 것을 정당화할 수는 없습니다.

메인 브라우저 스레드에서 1만 줄 이상의 코드를 하이라이트하는 것은 일부 기기에서 눈에 띄게 느리게 느껴질 수 있습니다

네, 그렇지만 코드 블록 밖의 나머지 게시물 내용을 편집하고 있는 동안 그런 일이 일어나는 이유는 없습니다. 메인 스레드에서 그렇게 하는 것(분명히 잘못된 것인데, 수정 중이라는 소식을 들으니 다행입니다)이든 백그라운드에서 하든, 코드가 하이라이트된 후 더 이상 그것을 편집하지 않는다면 하이라이트와 관련된 작업이 전혀 이루어져서는 안 됩니다. 하이라이트와 관련된 파싱, 계산 등은 코드 블록의 내용이 수정될 때만 다시 수행되어야 합니다.