P粉8541192632023-08-27 00:50:55
기본적인 벤치마킹을 해봤는데 자주 사용하는 변수를 제공/주입해야 하는지, 아니면 다수의 컴포넌트에서 피니아 스토어에서 접근해야 하는지 궁금합니다.
결과적으로는 큰 성능 차이가 없는 것으로 나타났습니다.
첫 번째 테스트 사례는 매우 기본적입니다.
단일 bool
을 제공/주입하는 것은 구성 요소의 Pinia 저장소에서 가져오고 구성 요소를 여러 번 렌더링하는 것과는 다릅니다.
50k 구성요소를 렌더링하는 데 20~24초가 걸렸으며, 제공/주입 및 Pinia도 사용했습니다. 둘 중 하나가 더 빠르거나 느리다고 말하는 일관된 차이는 없습니다.
두 번째 테스트에서는 약 1MiB의 데이터 배열(공백 없이 JSON 인쇄로 측정됨)인 더 큰 개체를 사용했습니다. 그 차이도 크지 않습니다. 저는 50,000개의 구성 요소를 렌더링했으며 주입과 저장소 액세스를 모두 사용하는 데 19~26초 사이로 거의 같은 시간이 걸렸습니다.
각 구성 요소는 테마 변수의 부울 값을 렌더링하므로 큰 데이터와 작은 부울 값으로 인해 렌더링 시간이 늘어나지 않습니다.
결국 프로바이더/인젝션과 피니아 매장은 별 의미 없는 차이가 있다는 결론에 이르렀습니다. 유일한 명백한 차이점은 데이터가 클수록 성능이 덜 안정적이고 데이터가 작을수록 성능을 더 예측할 수 있다는 것입니다. 부울 값에 대한 테스트를 몇 번이나 반복하더라도 시간은 항상 20-24초 사이이고 데이터가 증가함에 따라 19초 또는 26초와 같은 일부 이상값이 발생합니다. 다시 말하지만 일관성이 없습니다. 이는 실제 CPU 사용량의 변동일 수 있으며 제공/주입 대 Pinia 저장소 사용량과는 아무 관련이 없습니다.
vue@3.2.47 및 pinia@2.0.32를 사용하여 macOS의 Chrome v110(x86_64)에서 테스트했습니다.
내가 사용한 테스트 코드:
으아악 으아악 으아악