Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(LiveChat): Only store required video info values #281

Merged
merged 1 commit into from
Jan 9, 2023

Conversation

absidue
Copy link
Collaborator

@absidue absidue commented Jan 9, 2023

Description

The LiveChat object will be used by users of this library for a much longer amount of time than the VideoInfo, as it needs to stick around for the events to be emitted. By storing the video and channel IDs directly inside the LiveChat object instead of storing the whole (large) VideoInfo object, we allow the JavaScript VM to garbage collect the VideoInfo object (and the many objects inside of it) when there are no more references to it in the library user's code, lowering the memory usage.

In FreeTube for example we read the info that we want from the VideoInfo object, then get the live chat if there is one, after that the FreeTube code no longer references the VideoInfo object. With this change, YouTube.js won't hold any references to it either, so it can get garbage collected.

Type of change

  • Bug fix (non-breaking change which fixes an issue)

Checklist:

  • My code follows the style guidelines of this project
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings
  • I have added tests that prove my fix is effective or that my feature works
  • New and existing unit tests pass locally with my changes
  • I have checked my code and corrected any misspellings

@LuanRT LuanRT merged commit 89ee68b into LuanRT:main Jan 9, 2023
@absidue absidue deleted the live-chat-minimal-info branch January 9, 2023 19:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants