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

bottlenecks in tar_outdated() for large projects #1408

Open
wlandau opened this issue Dec 20, 2024 · 3 comments
Open

bottlenecks in tar_outdated() for large projects #1408

wlandau opened this issue Dec 20, 2024 · 3 comments
Assignees

Comments

@wlandau
Copy link
Member

wlandau commented Dec 20, 2024

I wonder how feasible it is to remove these findings. Might be unfeasible, but still worth looking at again:

Screenshot 2024-12-20 at 4 41 01 PM

@wlandau wlandau self-assigned this Dec 20, 2024
@wlandau
Copy link
Member Author

wlandau commented Dec 23, 2024

Progress: 0ab09a5 reduced target_skip() down to 5.13% of the runtime of tar_outdated().

@wlandau
Copy link
Member Author

wlandau commented Dec 23, 2024

Recent commits (up to e026925) have reduced the computation time of tar_outdated() by about 33%. I still think I can eliminate calls to meta$get_record() by relying on direct metadata rows instead of full record objects, especially in target_sync_file_meta().

@wlandau
Copy link
Member Author

wlandau commented Dec 24, 2024

Flame graph from proffer::pprof(targets::tar_outdated(callr_function = NULL, reporter = "silent")) as of bc09d7a:

Screenshot 2024-12-24 at 12 02 36 PM

I think builder_should_run() and pipeline_get_target() are worth revisiting next.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant