IIS에서는 opcache, wincache 어떤 캐시를 사용해야 하는지 의견이 분분합니다.
IIS포럼에서는 opcahe만 켜라 wincache는 무의미하다는 글도 있고,
php.net에서는 둘 다 사용하는 것을 권장하기도 합니다. (https://www.php.net/manual/en/install.windows.recommended.php)
그래서 직접 실험해서 ttfb를 비교해 봤습니다. (각각 100회씩)
1. opcache 활성화 && rhymix 시스템설정 > 캐시 사용에서
캐시 사용하지 않음 16.04~26 ms
file 15.81~26 ms
wincache 14.07~25 ms
2. opcache 비활성 && rhymix 시스템설정 > 캐시 사용에서
캐시 사용하지 않음 54.22~64 ms
file 53.70~60 ms
wincache 52.08~60 ms
결론은 둘 다 켜는것이 좀 더 빠르긴한데 큰 차이는 없어 보입니다.
다만 opcache는 무조건 활성화 하는 것이 좋을 것 같습니다.
라이믹스에서 opcache 관련해서는 옵션 자체가 없습니다. PHP에 기본으로 포함된 기능이고, 묻지도 따지지도 않고 무조건 켠다고 가정하기 때문입니다. 안 켜면 가만히 앉아서 3~4배의 성능을 손해봅니다.
wincache나 memcache는 거기에 더하여 사용하는 것이지 opcache를 대체하는 용도가 아닙니다. opcache만 쓰는 것도 현실적인 시나리오이고, opcache+wincache도 현실적인 시나리오이지만, opcache 없이 wincache만 쓴다는 것은 처음부터 앞뒤가 맞지 않는 상황입니다.
방금 설치한 빈 사이트에서 이런 캐시를 추가한다고 TTFB가 더 빨라지지도 않습니다. 오히려 더 느려지는 경우도 있습니다. 애초에 TTFB를 향상시키는 기능으로 설계된 것이 아니기 때문입니다. wincache나 memcache 같은 추가적인 캐시는 데이터가 많이 쌓이고 접속자가 늘어났을 때 비로소 진가를 발휘합니다. 접속자가 많은 사이트에서 memcache를 쓰느냐 안 쓰느냐는 서버 부하(즉, 운영비)에 적게는 10배, 많게는 100배 이상의 차이를 낳을 수도 있습니다. TTFB만 보는 벤치마크로는 이런 효과를 알 수가 없습니다.