!djTaTBQyWEPRQxrPTb:nixos.org

Nixpkgs Architecture Team

231 Members
https://github.com/nixpkgs-architecture, weekly public meetings on Wednesday 15:00-16:00 UTC at https://meet.jit.si/nixpkgs-architecture53 Servers

Load older messages


SenderMessageTime
30 Jul 2022
@qyliss:fairydust.spaceAlyssa Ross (especially statically linked, or rpath-optimised lns) 09:44:55
@hsngrmpf:matrix.orgDavHau
In reply to @qyliss:fairydust.space
so (just as an example) I'd expect you could run many lns before Python has started up
Good point. Having proper data on this might be interesting. I might do some benchmarks if I find time.
10:03:31
@hsngrmpf:matrix.orgDavHauOn the other hand. Performance is only then a concern when we talk about large numbers of of operations. And anything that doesn't launch processes will always be significantly faster in that scenario.10:19:08
@qyliss:fairydust.spaceAlyssa RossThose large numbers of operations tend to be contained in configure scripts / makefiles anyway10:20:16
@qyliss:fairydust.spaceAlyssa Rosstbh I think optimising stdenv for speed is not going to be worth it10:20:43
@qyliss:fairydust.spaceAlyssa Rossbecause I highly doubt anybody is bottlenecked on stdenv as opposed to the builds themselves10:21:02
@qyliss:fairydust.spaceAlyssa RossWhen I'm waiting hours for a build, it's not because stdenv is slow.10:21:18
@hsngrmpf:matrix.orgDavHauI agree. No need for optimization, but also no need to be worried about overhead in launching phases with proper interfaces.10:50:51
@sandro:supersandro.deSandro 🐧 changed their display name from Sandro to Sandro 🐧.13:17:13
1 Aug 2022
@better_sleeping:converser.eubetter_sleeping joined the room.09:11:58
@better_sleeping:converser.eubetter_sleeping left the room.09:12:24
@Ericson2314:matrix.orgJohn Ericsonhttps://github.com/NixOS/nixpkgs/pull/183967 FYI here is example of some small low hanging cleanups, from the impromptu bootstrapping call14:50:48
@Ericson2314:matrix.orgJohn Ericsonnot saying we can end up anywhere interesting with such baby steps alone, but it can be nice to go spelunking / do the archeology14:51:10
@whentze:matrix.orgWanja Hentze
In reply to @qyliss:fairydust.space
fork+exec overhead is trivial compared to e.g. interpreter startup time for most languages
side note: nix should probably not use fork+exec to spawn children, as it has a time overhead proportional to the amount of memory mapped by the parent process (which can be quite large in the case of Nix)
you probably know this already, and maybe nix does it anyway. I just take any opportunity I can to shill posix_spawn - which does not have this problem.
17:43:13
@whentze:matrix.orgWanja Hentze
In reply to @qyliss:fairydust.space
fork+exec overhead is trivial compared to e.g. interpreter startup time for most languages
* side note: nix should probably not use fork+exec to spawn children, as it has a time overhead proportional to the amount of memory mapped by the parent process (which can be quite large in the case of Nix)
you probably know this already, and maybe nix does not even do this anyway. I just take any opportunity I can to shill posix_spawn - which does not have this problem.
17:43:27
@whentze:matrix.orgWanja Hentzeshells like bash mostly still due it this way for cursed backcompat reasons but you can really do better17:45:20
@whentze:matrix.orgWanja Hentze * shells like bash mostly still do it this way for cursed backcompat reasons but you can really do better17:45:27
@whentze:matrix.orgWanja HentzeScreenshot from 2022-08-01 19-45-36.png
Download Screenshot from 2022-08-01 19-45-36.png
17:46:29
@whentze:matrix.orgWanja Hentzeold-ish graph from https://www.microsoft.com/en-us/research/uploads/prod/2019/04/fork-hotos19.pdf17:46:50
@qyliss:fairydust.spaceAlyssa RossNix spawns a negligible number of processes — almost all processes in a build will come from a shell or build system.17:47:07
@qyliss:fairydust.spaceAlyssa Rossthe only thing Nix itself spawns is the shell that runs the builder17:47:22
@qyliss:fairydust.spaceAlyssa Ross(and stuff like git in fetchers, of course)17:47:29
@qyliss:fairydust.spaceAlyssa Rossbut yes, posix_spawn is the way to go when you have to spawn a process17:47:48
@whentze:matrix.orgWanja Hentzeright, but I thought the discussion was about changing this, maybe?17:47:57
@whentze:matrix.orgWanja Hentzeby ripping out the shell or something?17:48:04
@whentze:matrix.orgWanja HentzeI must admit I didn't read all of it17:48:11
@roberthensing:matrix.orgRobert Hensing (roberth)nix doesn't know about the build script. Only about the builder (an executable) and its args17:56:22
@roberthensing:matrix.orgRobert Hensing (roberth)
In reply to @qyliss:fairydust.space
tbh I think optimising stdenv for speed is not going to be worth it
NixOS produces many small derivations. It may be felt when the software has been built but the configuration changes.
18:00:59
@roberthensing:matrix.orgRobert Hensing (roberth)unlike a mass rebuild, changing configuration is expected to be somewhat instant, involving multiple "stdenv" executions18:02:03
@roberthensing:matrix.orgRobert Hensing (roberth)
In reply to @profpatsch:augsburg.one
(isomorphic in the sense of isomorphic javascript)
you'll still need some interface between the two evaluators. Serializing functions is a thorny problem. Without functions, the interface is already effectively JSON.
18:03:50

There are no newer messages yet.


Back to Room ListRoom Version: 9