• 0 Posts
  • 5 Comments
Joined 6 years ago
cake
Cake day: January 21st, 2021

help-circle
  • We actually do. Libraries are traditionally named something like libfoo1.2.3.so. Then there are symlinks from libfoo1.so and libfoo1.2.so. This way you can depend on libfoo1.2.so and it works fine even if the user has libfoo 1.2.6.

    Now there are lots of problems here.

    1. It would require distros to ship multiple versions. This is a lot of maintenance work so it typically only done for very core libraries.
    2. It requires applications to accurately express their dependencies.
    3. It doesn’t work very well for version ranges beyond patches (I need at least version 1.2, but version 1.3 is also fine).
    4. It requires the library maintain binary compatibility which is difficult to do in C and C++.

    So yes, shared libraries and careful management is more elegant and efficient. But like so many things worse is better so “It works on your machine? We’re shipping your machine”.



  • If you only take the bottom (lowest) 1% of all frame rate measurements (and average them)

    I don’t think that is the methodology. I think it is taking the 99th percentile frame time. So basically if took the time it took to generate every single frame this is the time that 99% of frames were faster than and 1% were slower than.

    If this number goes down it means that the worst frames are less bad. This is a pretty important part of the experience as even if you have good average frame time (and decent FPS) having a few slow frames really makes the game feel choppy and can make precise inputs difficult.