-
-
Notifications
You must be signed in to change notification settings - Fork 13.7k
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
Per package CPU optimized CFLAGS #305
Comments
Danny Wilson notifications@github.com writes:
I agree this would be nice, but I think the "price" of doing this can be As an example, think of ffmpeg. It has a lot of optional functionality Now, you have 2 options:
There are some proposals to allow "impure patching" replacing a A better solution might be to have a system-wide optimization "profile",
|
By making it per package, the price can be kept under control. My personal use case would be to compile an optimized webserver and database for example, not glibc or even the entire system. For heavily used processes, every extra percentage gained is pretty much a 'free' server upgrade. However if you do end up recompiling half the system, it might be interesting to have every dependency also be optimized while you're at it. So when setting ffmpeg to optimized, have the packages depending on it be optimized as well. Here are some (older) benchmarks comparing Gentoo optimized packages with Ubuntu 9: http://www.linux-mag.com/id/7715/2/ |
Please see the answer from @edolstra from the ML thread you mentioned: The benchmark actually came to a different conclusion than your comment, wrong URL maybe? |
On Fri, Feb 8, 2013 at 9:41 AM, Danny Wilson notifications@github.comwrote:
Judging by the syntax you proposed in the original discussion, this is what This would have the effect that the expression for nginx evaluates to some The alternative is to not override nixpkgs (not use nixpkgs.config), but However, everything else on the system (if anything) that depends on such So, although I would like this ability (building an optimized package),
Would still be interesting to see how 64bit developed since it's early days
[1] http://nixos.org/wiki/Howto_keep_multiple_packages_up_to_date_at_once |
@aszlig if you take the graphs you can see alot of packages take 5-10% less time compared to ubuntu. The written conclusion seems to ignore that. Gzip is even more dramatic, and webservers gzip all day. |
On Fri, Feb 08, 2013 at 07:48:02AM -0800, Danny Wilson wrote:
For what I see, the i686 gzip is close to the newer platforms (P3/Core2). It |
An example config.nix that should work with stdenv-updates (in principle, I haven't tested):
|
Not sure why I mentioned stdenv-updates, the above should work just fine in master too. |
Does my example config.nix solve the issue for those who care? |
Please feel free to reopen if there's still an issue here. |
I just re-read the discussion, can I also optimize (override?) the dependencies of the to-be optimized package with this function? Will test this out soon with our custom packages :-) |
Hmm that's harder to do in general, but for the majority of packages (i.e. those that use |
Changelog: - Add QueryRow to our connection interface - Add SQL API for managing metric compression setting - Add code documentation for query/read path of the connector - Adds support for checking pg version on startup - BUGFIX reset pendingBuffer epoch when we're done - Epoch-Based cache validation - First pass documenting the write path - Fix bug with deletion of metric name labels. - Fix erroneous PromQL query in end-to-end tests - Fix error reporting to prevent panic - Fix golden file tests - Fix logging output to match rest of the project - Fix views on Vanilla PG and add tests - Make example docker-compose clearer (NixOS#305) - Mask password while printing config - Prepare for the 0.1.1 release - Prepare for the next development cycle - REFACTOR rearrange mocks - REFACTOR switch TestPGXInserterInsertData to the new mock - REFACTOR switch TestPGXInserterInsertSeries to the new mock - Start a pgmodel Readme Source: https://github.com/timescale/promscale/releases/tag/0.1.1
spotifyd: add spotifyd service
Optionally compiling certain packages optimized for your CPU, in a pure way allowing the nix store to be shared across machines would be very nice to have.
Discussion on the mailinglist:
http://lists.science.uu.nl/pipermail/nix-dev/2013-February/010604.html
Make sure
-O${optimizationLevel} -march=native -mtune=native
gets evaluated on the machine requesting a build while allowing build servers to do the actual compiling ( __preferLocalBuild ? )The text was updated successfully, but these errors were encountered: