mirror of
https://github.com/aome510/spotify-player.git
synced 2026-04-26 09:25:49 +03:00
[GH-ISSUE #569] Enable Link-Time Optimization (LTO) #328
Labels
No labels
bug
documentation
enhancement
good first issue
help wanted
pull-request
question
third-party
third-party
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/spotify-player#328
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @zamazan4ik on GitHub (Oct 8, 2024).
Original GitHub issue: https://github.com/aome510/spotify-player/issues/569
Is your feature already implemented in the latest
master?No
Is your feature request related to a problem? Please describe.
It's not a problem - just an improvement idea
Describe the solution you'd like
I noticed that in the
Cargo.tomlfile Link-Time Optimization (LTO) for the project is not enabled. I suggest switching it on since it will reduce the binary size (always a good thing to have) and will likely improve the application's performance a bit. At least one person also tried to enable LTO in their builds.I suggest enabling LTO only for the Release builds so as not to sacrifice the developers' experience while working on the project since LTO consumes an additional amount of time to finish the compilation routine. If you think that a regular Release build should not be affected by such a change as well, then I suggest adding an additional
distorrelease-ltoprofile where additionally to regularreleaseoptimizations LTO will also be added. Such a change simplifies life for maintainers and others interested in the project persons who want to build the most performant version of the application. Using ThinLTO should also help to reduce the build-time overhead with LTO. If we enable it on the Cargo profile level, users, who install the application withcargo install, will get the LTO-optimized version "automatically". E.g., checkcargo-outdatedRelease profile.Basically, it can be enabled with the following lines:
Describe alternatives you've considered
Leave things as is
Additional context
N/A
playback_window_positionisBottom#1110