KurtBestor / Hitomi-Downloader

:cake: Desktop utility to download images/videos/music/text from various websites, and more.
20.85k stars 1.95k forks source link

gui 렉 #7188

Open hwnnhji opened 1 month ago

hwnnhji commented 1 month ago

안녕하세요 개발자님 프로그램 항상 잘 사용중입니다. 정말 감사합니다.

저는 개발은 잘 몰라서 확실하진 않습니다만, 보통 프로그램을 만들면 ui는 ui대로, 작업은 백그라운드에서 작업 대로 따로 동작하지 않나 싶습니다. 다만 hitomi downloader은 task manager을 통해 확인해봐도 background process가 없는 건 아니지만 다운로드 작업 전부 app에서 작동하는 것으로 보입니다.

yt-dlp는 극심하고, 이거 아니더라도 히토미 검색 엔진이나, 여러 다른 사이트도 다운로드를 시작하면 다운로드는 어떻게든 진행이 되는데 gui는 거의 사용이 불가능해질정도로 렉이 걸립니다. 개인적으론 이게 프로그램 자체의 가장 큰 문제라고 생각합니다만, 혹시 이러한 부분은 프로그램을 좀 바꾸실 생각 있으신지 궁금해요.

잘 모르는데 이렇게 말하는 게 좀 조심스럽긴 하네요. 어떻게 생각하시는지라도 좀 궁금합니다.

KurtBestor commented 3 weeks ago

모든 프로그램이 겪는 문제이고, 특히 GUI 프로그램은 UI 업데이트 부분에 락이 걸려있기 때문에 잦은 UI 변경은 버벅임을 유발합니다. 작업관리자에 나오는 건 프로세스 단위이고, 말씀하신 작업들은 UI 와 다른 스레드에서 동작해요. 대부분의 GUI 프로그램은 멀티스레딩으로 개발돼요. yt-dlp 는 멀티스레드를 고려하지 않고 개발되었기 때문에 GIL 을 오래 잠궈서 해당 문제가 조금 심하고, 검색기는 최근에 UI 최적화를 해서 훨씬 나을 거예요: https://github.com/KurtBestor/Hitomi-Downloader/releases/tag/Technical-Preview

UI 부분과 나머지 부분을 완전히 분리해서 멀티프로세스로 개발시 특정 부분에서 버벅임이 조금 줄 수는 있겠지만 다음과 같은 단점들이 있어요:

버벅임이 엄청나게 심하다면 위 옵션도 고려해볼만한 하지만 yt-dlp 도 다운로드 시작 전 읽을 때만 잠깐 버벅이고 검색기도 충분히 나아졌기 때문에 바꾸지 않는 게 나을 것 같아요